<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkWidget</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GTK+ 3 参考手册">
<link rel="up" href="AbstractObjects.html" title="抽象基类">
<link rel="prev" href="AbstractObjects.html" title="抽象基类">
<link rel="next" href="gtk3-GtkContainer.html" title="GtkContainer">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="AbstractObjects.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="AbstractObjects.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GTK+ 3 参考手册</th>
<td><a accesskey="n" href="gtk3-GtkContainer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gtk3-GtkWidget.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#gtk3-GtkWidget.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="gtk3-GtkWidget"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gtk3-GtkWidget.top_of_page"></a>GtkWidget</span></h2>
<p>GtkWidget — Base class for all widgets</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gtk3-GtkWidget.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;gtk/gtk.h&gt;

                    <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget">GtkWidget</a>;
struct              <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass">GtkWidgetClass</a>;
<span class="returnvalue">void</span>                (<a class="link" href="gtk3-GtkWidget.html#GtkCallback" title="GtkCallback ()">*GtkCallback</a>)                      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
struct              <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition">GtkRequisition</a>;
typedef             <a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation">GtkAllocation</a>;
                    <a class="link" href="gtk3-GtkWidget.html#GtkSelectionData" title="GtkSelectionData">GtkSelectionData</a>;
struct              <a class="link" href="gtk3-GtkWidget.html#GtkWidgetAuxInfo" title="struct GtkWidgetAuxInfo">GtkWidgetAuxInfo</a>;
enum                <a class="link" href="gtk3-GtkWidget.html#GtkWidgetHelpType" title="enum GtkWidgetHelpType">GtkWidgetHelpType</a>;
<a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-new" title="gtk_widget_new ()">gtk_widget_new</a>                      (<em class="parameter"><code><a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-destroy" title="gtk_widget_destroy ()">gtk_widget_destroy</a>                  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-in-destruction" title="gtk_widget_in_destruction ()">gtk_widget_in_destruction</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-destroyed" title="gtk_widget_destroyed ()">gtk_widget_destroyed</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> **widget_pointer</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-unparent" title="gtk_widget_unparent ()">gtk_widget_unparent</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()">gtk_widget_show</a>                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show-now" title="gtk_widget_show_now ()">gtk_widget_show_now</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-hide" title="gtk_widget_hide ()">gtk_widget_hide</a>                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()">gtk_widget_show_all</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-map" title="gtk_widget_map ()">gtk_widget_map</a>                      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-unmap" title="gtk_widget_unmap ()">gtk_widget_unmap</a>                    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-realize" title="gtk_widget_realize ()">gtk_widget_realize</a>                  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-unrealize" title="gtk_widget_unrealize ()">gtk_widget_unrealize</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-draw" title="gtk_widget_draw ()">gtk_widget_draw</a>                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-draw" title="gtk_widget_queue_draw ()">gtk_widget_queue_draw</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()">gtk_widget_queue_resize</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-resize-no-redraw" title="gtk_widget_queue_resize_no_redraw ()">gtk_widget_queue_resize_no_redraw</a>   (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()">gtk_widget_size_request</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-child-requisition" title="gtk_widget_get_child_requisition ()">gtk_widget_get_child_requisition</a>    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()">gtk_widget_size_allocate</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-accelerator" title="gtk_widget_add_accelerator ()">gtk_widget_add_accelerator</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *accel_signal</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> accel_key</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> accel_mods</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkAccelFlags" title="enum GtkAccelFlags"><span class="type">GtkAccelFlags</span></a> accel_flags</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-remove-accelerator" title="gtk_widget_remove_accelerator ()">gtk_widget_remove_accelerator</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> accel_key</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> accel_mods</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-accel-path" title="gtk_widget_set_accel_path ()">gtk_widget_set_accel_path</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *accel_path</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>);
<a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gtk3-GtkWidget.html#gtk-widget-list-accel-closures" title="gtk_widget_list_accel_closures ()">gtk_widget_list_accel_closures</a>      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-can-activate-accel" title="gtk_widget_can_activate_accel ()">gtk_widget_can_activate_accel</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-event" title="gtk_widget_event ()">gtk_widget_event</a>                    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> *event</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-activate" title="gtk_widget_activate ()">gtk_widget_activate</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-reparent" title="gtk_widget_reparent ()">gtk_widget_reparent</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *new_parent</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-intersect" title="gtk_widget_intersect ()">gtk_widget_intersect</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Points-Rectangles-and-Regions.html#GdkRectangle"><span class="type">GdkRectangle</span></a> *area</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Points-Rectangles-and-Regions.html#GdkRectangle"><span class="type">GdkRectangle</span></a> *intersection</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-focus" title="gtk_widget_is_focus ()">gtk_widget_is_focus</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()">gtk_widget_grab_focus</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-grab-default" title="gtk_widget_grab_default ()">gtk_widget_grab_default</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()">gtk_widget_set_name</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-name" title="gtk_widget_get_name ()">gtk_widget_get_name</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-state" title="gtk_widget_set_state ()">gtk_widget_set_state</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-sensitive" title="gtk_widget_set_sensitive ()">gtk_widget_set_sensitive</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sensitive</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-parent" title="gtk_widget_set_parent ()">gtk_widget_set_parent</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *parent</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-parent-window" title="gtk_widget_set_parent_window ()">gtk_widget_set_parent_window</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *parent_window</code></em>);
<a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="returnvalue">GdkWindow</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-parent-window" title="gtk_widget_get_parent_window ()">gtk_widget_get_parent_window</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-events" title="gtk_widget_set_events ()">gtk_widget_set_events</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> events</code></em>);
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-events" title="gtk_widget_get_events ()">gtk_widget_get_events</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-events" title="gtk_widget_add_events ()">gtk_widget_add_events</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> events</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-device-events" title="gtk_widget_set_device_events ()">gtk_widget_set_device_events</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a> events</code></em>);
<a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="returnvalue">GdkEventMask</span></a>        <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-device-events" title="gtk_widget_get_device_events ()">gtk_widget_get_device_events</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-device-events" title="gtk_widget_add_device_events ()">gtk_widget_add_device_events</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a> events</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-device-enabled" title="gtk_widget_set_device_enabled ()">gtk_widget_set_device_enabled</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-device-enabled" title="gtk_widget_get_device_enabled ()">gtk_widget_get_device_enabled</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>);
<a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-toplevel" title="gtk_widget_get_toplevel ()">gtk_widget_get_toplevel</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-ancestor" title="gtk_widget_get_ancestor ()">gtk_widget_get_ancestor</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> widget_type</code></em>);
<a href="../gdk3/gdk3-Visuals.html#GdkVisual"><span class="returnvalue">GdkVisual</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-visual" title="gtk_widget_get_visual ()">gtk_widget_get_visual</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-visual" title="gtk_widget_set_visual ()">gtk_widget_set_visual</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Visuals.html#GdkVisual"><span class="type">GdkVisual</span></a> *visual</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-pointer" title="gtk_widget_get_pointer ()">gtk_widget_get_pointer</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *y</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-ancestor" title="gtk_widget_is_ancestor ()">gtk_widget_is_ancestor</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *ancestor</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-translate-coordinates" title="gtk_widget_translate_coordinates ()">gtk_widget_translate_coordinates</a>    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *src_widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *dest_widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_y</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_y</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-hide-on-delete" title="gtk_widget_hide_on_delete ()">gtk_widget_hide_on_delete</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-style" title="gtk_widget_set_style ()">gtk_widget_set_style</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="type">GtkStyle</span></a> *style</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-ensure-style" title="gtk_widget_ensure_style ()">gtk_widget_ensure_style</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="returnvalue">GtkStyle</span></a> *          <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-style" title="gtk_widget_get_style ()">gtk_widget_get_style</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-reset-rc-styles" title="gtk_widget_reset_rc_styles ()">gtk_widget_reset_rc_styles</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="returnvalue">GtkStyle</span></a> *          <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-default-style" title="gtk_widget_get_default_style ()">gtk_widget_get_default_style</a>        (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-direction" title="gtk_widget_set_direction ()">gtk_widget_set_direction</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="type">GtkTextDirection</span></a> dir</code></em>);
enum                <a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection">GtkTextDirection</a>;
<a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>    <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-direction" title="gtk_widget_get_direction ()">gtk_widget_get_direction</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-default-direction" title="gtk_widget_set_default_direction ()">gtk_widget_set_default_direction</a>    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="type">GtkTextDirection</span></a> dir</code></em>);
<a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>    <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-default-direction" title="gtk_widget_get_default_direction ()">gtk_widget_get_default_direction</a>    (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-shape-combine-region" title="gtk_widget_shape_combine_region ()">gtk_widget_shape_combine_region</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-input-shape-combine-region" title="gtk_widget_input_shape_combine_region ()">gtk_widget_input_shape_combine_region</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-path" title="gtk_widget_path ()">gtk_widget_path</a>                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *path_length</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path_reversed</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-path" title="gtk_widget_class_path ()">gtk_widget_class_path</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *path_length</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path_reversed</code></em>);
<a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-composite-name" title="gtk_widget_get_composite_name ()">gtk_widget_get_composite_name</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()">gtk_widget_override_background_color</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()">gtk_widget_override_color</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()">gtk_widget_override_font</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../pango/pango-Fonts.html#PangoFontDescription"><span class="type">PangoFontDescription</span></a> *font_desc</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-symbolic-color" title="gtk_widget_override_symbolic_color ()">gtk_widget_override_symbolic_color</a>  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()">gtk_widget_override_cursor</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *cursor</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *secondary_cursor</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()">gtk_widget_modify_style</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Resource-Files.html#GtkRcStyle" title="GtkRcStyle"><span class="type">GtkRcStyle</span></a> *style</code></em>);
<a class="link" href="gtk3-Resource-Files.html#GtkRcStyle" title="GtkRcStyle"><span class="returnvalue">GtkRcStyle</span></a> *        <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-modifier-style" title="gtk_widget_get_modifier_style ()">gtk_widget_get_modifier_style</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()">gtk_widget_modify_fg</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-bg" title="gtk_widget_modify_bg ()">gtk_widget_modify_bg</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-text" title="gtk_widget_modify_text ()">gtk_widget_modify_text</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-base" title="gtk_widget_modify_base ()">gtk_widget_modify_base</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-font" title="gtk_widget_modify_font ()">gtk_widget_modify_font</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../pango/pango-Fonts.html#PangoFontDescription"><span class="type">PangoFontDescription</span></a> *font_desc</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-cursor" title="gtk_widget_modify_cursor ()">gtk_widget_modify_cursor</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *primary</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *secondary</code></em>);
<a href="../pango/pango-Text-Processing.html#PangoContext"><span class="returnvalue">PangoContext</span></a> *      <a class="link" href="gtk3-GtkWidget.html#gtk-widget-create-pango-context" title="gtk_widget_create_pango_context ()">gtk_widget_create_pango_context</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../pango/pango-Text-Processing.html#PangoContext"><span class="returnvalue">PangoContext</span></a> *      <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-pango-context" title="gtk_widget_get_pango_context ()">gtk_widget_get_pango_context</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../pango/pango-Layout-Objects.html#PangoLayout"><span class="returnvalue">PangoLayout</span></a> *       <a class="link" href="gtk3-GtkWidget.html#gtk-widget-create-pango-layout" title="gtk_widget_create_pango_layout ()">gtk_widget_create_pango_layout</a>      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>);
<a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-render-icon" title="gtk_widget_render_icon ()">gtk_widget_render_icon</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stock_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a> size</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detail</code></em>);
<a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-render-icon-pixbuf" title="gtk_widget_render_icon_pixbuf ()">gtk_widget_render_icon_pixbuf</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stock_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a> size</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-pop-composite-child" title="gtk_widget_pop_composite_child ()">gtk_widget_pop_composite_child</a>      (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-push-composite-child" title="gtk_widget_push_composite_child ()">gtk_widget_push_composite_child</a>     (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-draw-area" title="gtk_widget_queue_draw_area ()">gtk_widget_queue_draw_area</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-draw-region" title="gtk_widget_queue_draw_region ()">gtk_widget_queue_draw_region</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-app-paintable" title="gtk_widget_set_app_paintable ()">gtk_widget_set_app_paintable</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> app_paintable</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-double-buffered" title="gtk_widget_set_double_buffered ()">gtk_widget_set_double_buffered</a>      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> double_buffered</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-redraw-on-allocate" title="gtk_widget_set_redraw_on_allocate ()">gtk_widget_set_redraw_on_allocate</a>   (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> redraw_on_allocate</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-composite-name" title="gtk_widget_set_composite_name ()">gtk_widget_set_composite_name</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-mnemonic-activate" title="gtk_widget_mnemonic_activate ()">gtk_widget_mnemonic_activate</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> group_cycling</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-install-style-property" title="gtk_widget_class_install_style_property ()">gtk_widget_class_install_style_property</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-install-style-property-parser" title="gtk_widget_class_install_style_property_parser ()">gtk_widget_class_install_style_property_parser</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkStyle.html#GtkRcPropertyParser" title="GtkRcPropertyParser ()"><span class="type">GtkRcPropertyParser</span></a> parser</code></em>);
<a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> *        <a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-find-style-property" title="gtk_widget_class_find_style_property ()">gtk_widget_class_find_style_property</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);
<a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> **       <a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-list-style-properties" title="gtk_widget_class_list_style_properties ()">gtk_widget_class_list_style_properties</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_properties</code></em>);
<a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="returnvalue">cairo_region_t</span></a> *    <a class="link" href="gtk3-GtkWidget.html#gtk-widget-region-intersect" title="gtk_widget_region_intersect ()">gtk_widget_region_intersect</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-send-expose" title="gtk_widget_send_expose ()">gtk_widget_send_expose</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> *event</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-send-focus-change" title="gtk_widget_send_focus_change ()">gtk_widget_send_focus_change</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> *event</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-get" title="gtk_widget_style_get ()">gtk_widget_style_get</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-get-property" title="gtk_widget_style_get_property ()">gtk_widget_style_get_property</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-get-valist" title="gtk_widget_style_get_valist ()">gtk_widget_style_get_valist</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-attach" title="gtk_widget_style_attach ()">gtk_widget_style_attach</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../atk/AtkObject.html"><span class="returnvalue">AtkObject</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-accessible" title="gtk_widget_get_accessible ()">gtk_widget_get_accessible</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()">gtk_widget_child_focus</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-child-notify" title="gtk_widget_child_notify ()">gtk_widget_child_notify</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *child_property</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-freeze-child-notify" title="gtk_widget_freeze_child_notify ()">gtk_widget_freeze_child_notify</a>      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-child-visible" title="gtk_widget_get_child_visible ()">gtk_widget_get_child_visible</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-parent" title="gtk_widget_get_parent ()">gtk_widget_get_parent</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-GtkSettings.html#GtkSettings" title="GtkSettings"><span class="returnvalue">GtkSettings</span></a> *       <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-settings" title="gtk_widget_get_settings ()">gtk_widget_get_settings</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-Clipboards.html#GtkClipboard" title="GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *      <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-clipboard" title="gtk_widget_get_clipboard ()">gtk_widget_get_clipboard</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Properties-and-Atoms.html#GdkAtom"><span class="type">GdkAtom</span></a> selection</code></em>);
<a href="../gdk3/GdkDisplay.html"><span class="returnvalue">GdkDisplay</span></a> *        <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-display" title="gtk_widget_get_display ()">gtk_widget_get_display</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="returnvalue">GdkWindow</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-root-window" title="gtk_widget_get_root_window ()">gtk_widget_get_root_window</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../gdk3/GdkScreen.html"><span class="returnvalue">GdkScreen</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-screen" title="gtk_widget_get_screen ()">gtk_widget_get_screen</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-has-screen" title="gtk_widget_has_screen ()">gtk_widget_has_screen</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-size-request" title="gtk_widget_get_size_request ()">gtk_widget_get_size_request</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *height</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-child-visible" title="gtk_widget_set_child_visible ()">gtk_widget_set_child_visible</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> is_visible</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()">gtk_widget_set_size_request</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-thaw-child-notify" title="gtk_widget_thaw_child_notify ()">gtk_widget_thaw_child_notify</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-no-show-all" title="gtk_widget_set_no_show_all ()">gtk_widget_set_no_show_all</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> no_show_all</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-no-show-all" title="gtk_widget_get_no_show_all ()">gtk_widget_get_no_show_all</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gtk3-GtkWidget.html#gtk-widget-list-mnemonic-labels" title="gtk_widget_list_mnemonic_labels ()">gtk_widget_list_mnemonic_labels</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-mnemonic-label" title="gtk_widget_add_mnemonic_label ()">gtk_widget_add_mnemonic_label</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *label</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-remove-mnemonic-label" title="gtk_widget_remove_mnemonic_label ()">gtk_widget_remove_mnemonic_label</a>    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *label</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-composited" title="gtk_widget_is_composited ()">gtk_widget_is_composited</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-error-bell" title="gtk_widget_error_bell ()">gtk_widget_error_bell</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-keynav-failed" title="gtk_widget_keynav_failed ()">gtk_widget_keynav_failed</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction</code></em>);
<a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-tooltip-markup" title="gtk_widget_get_tooltip_markup ()">gtk_widget_get_tooltip_markup</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-tooltip-markup" title="gtk_widget_set_tooltip_markup ()">gtk_widget_set_tooltip_markup</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *markup</code></em>);
<a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-tooltip-text" title="gtk_widget_get_tooltip_text ()">gtk_widget_get_tooltip_text</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-tooltip-text" title="gtk_widget_set_tooltip_text ()">gtk_widget_set_tooltip_text</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>);
<a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="returnvalue">GtkWindow</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-tooltip-window" title="gtk_widget_get_tooltip_window ()">gtk_widget_get_tooltip_window</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-tooltip-window" title="gtk_widget_set_tooltip_window ()">gtk_widget_set_tooltip_window</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> *custom_window</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-has-tooltip" title="gtk_widget_get_has_tooltip ()">gtk_widget_get_has_tooltip</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-has-tooltip" title="gtk_widget_set_has_tooltip ()">gtk_widget_set_has_tooltip</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> has_tooltip</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-trigger-tooltip-query" title="gtk_widget_trigger_tooltip_query ()">gtk_widget_trigger_tooltip_query</a>    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="returnvalue">GdkWindow</span></a> *         <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-window" title="gtk_widget_get_window ()">gtk_widget_get_window</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-cairo-should-draw-window" title="gtk_cairo_should_draw_window ()">gtk_cairo_should_draw_window</a>        (<em class="parameter"><code><a href="../cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *window</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-cairo-transform-to-window" title="gtk_cairo_transform_to_window ()">gtk_cairo_transform_to_window</a>       (<em class="parameter"><code><a href="../cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *window</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-allocated-width" title="gtk_widget_get_allocated_width ()">gtk_widget_get_allocated_width</a>      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-allocated-height" title="gtk_widget_get_allocated_height ()">gtk_widget_get_allocated_height</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-allocation" title="gtk_widget_get_allocation ()">gtk_widget_get_allocation</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-allocation" title="gtk_widget_set_allocation ()">gtk_widget_set_allocation</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-app-paintable" title="gtk_widget_get_app_paintable ()">gtk_widget_get_app_paintable</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-can-default" title="gtk_widget_get_can_default ()">gtk_widget_get_can_default</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-can-default" title="gtk_widget_set_can_default ()">gtk_widget_set_can_default</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> can_default</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-can-focus" title="gtk_widget_get_can_focus ()">gtk_widget_get_can_focus</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-can-focus" title="gtk_widget_set_can_focus ()">gtk_widget_set_can_focus</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> can_focus</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-double-buffered" title="gtk_widget_get_double_buffered ()">gtk_widget_get_double_buffered</a>      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()">gtk_widget_get_has_window</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-has-window" title="gtk_widget_set_has_window ()">gtk_widget_set_has_window</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> has_window</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-sensitive" title="gtk_widget_get_sensitive ()">gtk_widget_get_sensitive</a>            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-sensitive" title="gtk_widget_is_sensitive ()">gtk_widget_is_sensitive</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="returnvalue">GtkStateType</span></a>        <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-state" title="gtk_widget_get_state ()">gtk_widget_get_state</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-visible" title="gtk_widget_get_visible ()">gtk_widget_get_visible</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-visible" title="gtk_widget_set_visible ()">gtk_widget_set_visible</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> visible</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-state-flags" title="gtk_widget_set_state_flags ()">gtk_widget_set_state_flags</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> clear</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-unset-state-flags" title="gtk_widget_unset_state_flags ()">gtk_widget_unset_state_flags</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> flags</code></em>);
<a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="returnvalue">GtkStateFlags</span></a>       <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()">gtk_widget_get_state_flags</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-has-default" title="gtk_widget_has_default ()">gtk_widget_has_default</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-has-focus" title="gtk_widget_has_focus ()">gtk_widget_has_focus</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-has-grab" title="gtk_widget_has_grab ()">gtk_widget_has_grab</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-has-rc-style" title="gtk_widget_has_rc_style ()">gtk_widget_has_rc_style</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-drawable" title="gtk_widget_is_drawable ()">gtk_widget_is_drawable</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-toplevel" title="gtk_widget_is_toplevel ()">gtk_widget_is_toplevel</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-window" title="gtk_widget_set_window ()">gtk_widget_set_window</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *window</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-receives-default" title="gtk_widget_set_receives_default ()">gtk_widget_set_receives_default</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> receives_default</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-receives-default" title="gtk_widget_get_receives_default ()">gtk_widget_get_receives_default</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-support-multidevice" title="gtk_widget_set_support_multidevice ()">gtk_widget_set_support_multidevice</a>  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> support_multidevice</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-support-multidevice" title="gtk_widget_get_support_multidevice ()">gtk_widget_get_support_multidevice</a>  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-realized" title="gtk_widget_set_realized ()">gtk_widget_set_realized</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> realized</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-realized" title="gtk_widget_get_realized ()">gtk_widget_get_realized</a>             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-mapped" title="gtk_widget_set_mapped ()">gtk_widget_set_mapped</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mapped</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-mapped" title="gtk_widget_get_mapped ()">gtk_widget_get_mapped</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-requisition" title="gtk_widget_get_requisition ()">gtk_widget_get_requisition</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-device-is-shadowed" title="gtk_widget_device_is_shadowed ()">gtk_widget_device_is_shadowed</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>);

<a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="returnvalue">GtkWidgetPath</span></a> *     <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-path" title="gtk_widget_get_path ()">gtk_widget_get_path</a>                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="returnvalue">GtkStyleContext</span></a> *   <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-style-context" title="gtk_widget_get_style_context ()">gtk_widget_get_style_context</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-reset-style" title="gtk_widget_reset_style ()">gtk_widget_reset_style</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);

<a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *    <a class="link" href="gtk3-GtkWidget.html#gtk-requisition-new" title="gtk_requisition_new ()">gtk_requisition_new</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
<a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *    <a class="link" href="gtk3-GtkWidget.html#gtk-requisition-copy" title="gtk_requisition_copy ()">gtk_requisition_copy</a>                (<em class="parameter"><code>const <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-requisition-free" title="gtk_requisition_free ()">gtk_requisition_free</a>                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);

enum                <a class="link" href="gtk3-GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode">GtkSizeRequestMode</a>;
struct              <a class="link" href="gtk3-GtkWidget.html#GtkRequestedSize" title="struct GtkRequestedSize">GtkRequestedSize</a>;
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-height" title="gtk_widget_get_preferred_height ()">gtk_widget_get_preferred_height</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_height</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_height</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-width" title="gtk_widget_get_preferred_width ()">gtk_widget_get_preferred_width</a>      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_width</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-height-for-width" title="gtk_widget_get_preferred_height_for_width ()">gtk_widget_get_preferred_height_for_width</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_height</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_height</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-width-for-height" title="gtk_widget_get_preferred_width_for_height ()">gtk_widget_get_preferred_width_for_height</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_width</code></em>);
<a class="link" href="gtk3-GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="returnvalue">GtkSizeRequestMode</span></a>  <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-request-mode" title="gtk_widget_get_request_mode ()">gtk_widget_get_request_mode</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()">gtk_widget_get_preferred_size</a>       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *minimum_size</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *natural_size</code></em>);
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gtk3-GtkWidget.html#gtk-distribute-natural-allocation" title="gtk_distribute_natural_allocation ()">gtk_distribute_natural_allocation</a>   (<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> extra_space</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_requested_sizes</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequestedSize" title="struct GtkRequestedSize"><span class="type">GtkRequestedSize</span></a> *sizes</code></em>);

enum                <a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign">GtkAlign</a>;
<a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-halign" title="gtk_widget_get_halign ()">gtk_widget_get_halign</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-halign" title="gtk_widget_set_halign ()">gtk_widget_set_halign</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a> align</code></em>);
<a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-valign" title="gtk_widget_get_valign ()">gtk_widget_get_valign</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-valign" title="gtk_widget_set_valign ()">gtk_widget_set_valign</a>               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a> align</code></em>);
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-margin-left" title="gtk_widget_get_margin_left ()">gtk_widget_get_margin_left</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-margin-left" title="gtk_widget_set_margin_left ()">gtk_widget_set_margin_left</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-margin-right" title="gtk_widget_get_margin_right ()">gtk_widget_get_margin_right</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-margin-right" title="gtk_widget_set_margin_right ()">gtk_widget_set_margin_right</a>         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-margin-top" title="gtk_widget_get_margin_top ()">gtk_widget_get_margin_top</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-margin-top" title="gtk_widget_set_margin_top ()">gtk_widget_set_margin_top</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-margin-bottom" title="gtk_widget_get_margin_bottom ()">gtk_widget_get_margin_bottom</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-margin-bottom" title="gtk_widget_set_margin_bottom ()">gtk_widget_set_margin_bottom</a>        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);

<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()">gtk_widget_get_hexpand</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()">gtk_widget_set_hexpand</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> expand</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-hexpand-set" title="gtk_widget_get_hexpand_set ()">gtk_widget_get_hexpand_set</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand-set" title="gtk_widget_set_hexpand_set ()">gtk_widget_set_hexpand_set</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> set</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-vexpand" title="gtk_widget_get_vexpand ()">gtk_widget_get_vexpand</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-vexpand" title="gtk_widget_set_vexpand ()">gtk_widget_set_vexpand</a>              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> expand</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-vexpand-set" title="gtk_widget_get_vexpand_set ()">gtk_widget_get_vexpand_set</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-vexpand-set" title="gtk_widget_set_vexpand_set ()">gtk_widget_set_vexpand_set</a>          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> set</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-compute-expand" title="gtk_widget_queue_compute_expand ()">gtk_widget_queue_compute_expand</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()">gtk_widget_compute_expand</a>           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkOrientation" title="enum GtkOrientation"><span class="type">GtkOrientation</span></a> orientation</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="gtk3-GtkWidget.description"></a><h2>Description</h2>
<p>
GtkWidget is the base class all widgets in GTK+ derive from. It manages the
widget lifecycle, states and style.
</p>
<p>
</p>
<div class="refsect2">
<a name="geometry-management"></a><h3>Height-for-width Geometry Management</h3>
<p>
GTK+ uses a height-for-width (and width-for-height) geometry management
system. Height-for-width means that a widget can change how much
vertical space it needs, depending on the amount of horizontal space
that it is given (and similar for width-for-height). The most common
example is a label that reflows to fill up the available width, wraps
to fewer lines, and therefore needs less height.
</p>
<p>
Height-for-width geometry management is implemented in GTK+ by way
of five virtual methods:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-request-mode"><code class="function">GtkWidgetClass.get_request_mode()</code></a></li>
<li class="listitem"><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-width"><code class="function">GtkWidgetClass.get_preferred_width()</code></a></li>
<li class="listitem"><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a></li>
<li class="listitem"><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a></li>
<li class="listitem"><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-width-for-height"><code class="function">GtkWidgetClass.get_preferred_width_for_height()</code></a></li>
</ul></div>
<p>
</p>
<p>
There are some important things to keep in mind when implementing
height-for-width and when using it in container implementations.
</p>
<p>
The geometry management system will query a widget hierarchy in
only one orientation at a time. When widgets are initially queried
for their minimum sizes it is generally done in two initial passes
in the <a class="link" href="gtk3-GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="type">GtkSizeRequestMode</span></a> chosen by the toplevel.
</p>
<p>
For example, when queried in the normal
<a class="link" href="gtk3-GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> mode:
First, the default minimum and natural width for each widget
in the interface will be computed using <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-width" title="gtk_widget_get_preferred_width ()"><code class="function">gtk_widget_get_preferred_width()</code></a>.
Because the preferred widths for each container depend on the preferred
widths of their children, this information propagates up the hierarchy,
and finally a minimum and natural width is determined for the entire
toplevel. Next, the toplevel will use the minimum width to query for the
minimum height contextual to that width using
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-height-for-width" title="gtk_widget_get_preferred_height_for_width ()"><code class="function">gtk_widget_get_preferred_height_for_width()</code></a>, which will also be a highly
recursive operation. The minimum height for the minimum width is normally
used to set the minimum size constraint on the toplevel
(unless <a class="link" href="gtk3-GtkWindow.html#gtk-window-set-geometry-hints" title="gtk_window_set_geometry_hints ()"><code class="function">gtk_window_set_geometry_hints()</code></a> is explicitly used instead).
</p>
<p>
After the toplevel window has initially requested its size in both
dimensions it can go on to allocate itself a reasonable size (or a size
previously specified with <a class="link" href="gtk3-GtkWindow.html#gtk-window-set-default-size" title="gtk_window_set_default_size ()"><code class="function">gtk_window_set_default_size()</code></a>). During the
recursive allocation process it's important to note that request cycles
will be recursively executed while container widgets allocate their children.
Each container widget, once allocated a size, will go on to first share the
space in one orientation among its children and then request each child's
height for its target allocated width or its width for allocated height,
depending. In this way a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> will typically be requested its size
a number of times before actually being allocated a size. The size a
widget is finally allocated can of course differ from the size it has
requested. For this reason, <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> caches a  small number of results
to avoid re-querying for the same sizes in one allocation cycle.
</p>
<p>
See <a class="link" href="gtk3-GtkContainer.html#container-geometry-management" title="Height for width geometry management">GtkContainer's
geometry management section</a>
to learn more about how height-for-width allocations are performed
by container widgets.
</p>
<p>
If a widget does move content around to intelligently use up the
allocated size then it must support the request in both
<a href="gtk3-GtkWidget.html#GtkSizeRequestMode"><span class="type">GtkSizeRequestModes</span></a> even if the widget in question only
trades sizes in a single orientation.
</p>
<p>
For instance, a <a class="link" href="gtk3-GtkLabel.html#GtkLabel" title="struct GtkLabel"><span class="type">GtkLabel</span></a> that does height-for-width word wrapping
will not expect to have <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a> called
because that call is specific to a width-for-height request. In this
case the label must return the height required for its own minimum
possible width. By following this rule any widget that handles
height-for-width or width-for-height requests will always be allocated
at least enough space to fit its own content.
</p>
<p>
Here are some examples of how a <a class="link" href="gtk3-GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> widget
generally deals with width-for-height requests, for <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a>
it will do:
</p>
<pre class="programlisting">
static void
foo_widget_get_preferred_height (GtkWidget *widget, gint *min_height, gint *nat_height)
{
   if (i_am_in_height_for_width_mode)
     {
       gint min_width;

       GTK_WIDGET_GET_CLASS (widget)-&gt;get_preferred_width (widget, &amp;min_width, NULL);
       GTK_WIDGET_GET_CLASS (widget)-&gt;get_preferred_height_for_width (widget, min_width,
                                                                     min_height, nat_height);
     }
   else
     {
        ... some widgets do both. For instance, if a GtkLabel is rotated to 90 degrees
        it will return the minimum and natural height for the rotated label here.
     }
}
</pre>
<p>
</p>
<p>
And in <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-width-for-height"><code class="function">GtkWidgetClass.get_preferred_width_for_height()</code></a> it will simply return
the minimum and natural width:
</p>
<p>
</p>
<pre class="programlisting">
static void
foo_widget_get_preferred_width_for_height (GtkWidget *widget, gint for_height,
                                           gint *min_width, gint *nat_width)
{
   if (i_am_in_height_for_width_mode)
     {
       GTK_WIDGET_GET_CLASS (widget)-&gt;get_preferred_width (widget, min_width, nat_width);
     }
   else
     {
        ... again if a widget is sometimes operating in width-for-height mode
        (like a rotated GtkLabel) it can go ahead and do its real width for
        height calculation here.
     }
}
</pre>
<p>
</p>
<p>
Often a widget needs to get its own request during size request or
allocation. For example, when computing height it may need to also
compute width. Or when deciding how to use an allocation, the widget
may need to know its natural size. In these cases, the widget should
be careful to call its virtual methods directly, like this:
</p>
<div class="example">
<a name="id3881319"></a><p class="title"><b>Example 82. Widget calling its own size request method.</b></p>
<div class="example-contents"><pre class="programlisting">
GTK_WIDGET_GET_CLASS(widget)-&gt;get_preferred_width (widget),
                                 &amp;min, &amp;natural);
  </pre></div>
</div>
<p><br class="example-break">
</p>
<p>
It will not work to use the wrapper functions, such as
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-width" title="gtk_widget_get_preferred_width ()"><code class="function">gtk_widget_get_preferred_width()</code></a> inside your own size request
implementation. These return a request adjusted by <a class="link" href="gtk3-GtkSizeGroup.html#GtkSizeGroup" title="struct GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>
and by the <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.adjust-size-request"><code class="function">GtkWidgetClass.adjust_size_request()</code></a> virtual method. If a
widget used the wrappers inside its virtual method implementations,
then the adjustments (such as widget margins) would be applied
twice. GTK+ therefore does not allow this and will warn if you try
to do it.
</p>
<p>
Of course if you are getting the size request for
<span class="emphasis"><em>another</em></span> widget, such as a child of a
container, you <span class="emphasis"><em>must</em></span> use the wrapper APIs.
Otherwise, you would not properly consider widget margins,
<a class="link" href="gtk3-GtkSizeGroup.html#GtkSizeGroup" title="struct GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>, and so forth.
</p>
</div>
<p>
</p>
<hr>
<div class="refsect2">
<a name="style-properties"></a><h3>Style Properties</h3>
<p>
<span class="structname">GtkWidget</span> introduces <em class="firstterm">style
properties</em> - these are basically object properties that are stored
not on the object, but in the style object associated to the widget. Style
properties are set in resource files.
This mechanism is used for configuring such things as the location of the
scrollbar arrows through the theme, giving theme authors more control over the
look of applications without the need to write a theme engine in C.
</p>
<p>
Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-install-style-property" title="gtk_widget_class_install_style_property ()"><code class="function">gtk_widget_class_install_style_property()</code></a> to install style properties for
a widget class, <a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-find-style-property" title="gtk_widget_class_find_style_property ()"><code class="function">gtk_widget_class_find_style_property()</code></a> or
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-class-list-style-properties" title="gtk_widget_class_list_style_properties ()"><code class="function">gtk_widget_class_list_style_properties()</code></a> to get information about existing
style properties and <a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-get-property" title="gtk_widget_style_get_property ()"><code class="function">gtk_widget_style_get_property()</code></a>, <a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-get" title="gtk_widget_style_get ()"><code class="function">gtk_widget_style_get()</code></a> or
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-get-valist" title="gtk_widget_style_get_valist ()"><code class="function">gtk_widget_style_get_valist()</code></a> to obtain the value of a style property.
</p>
</div>
<p>
</p>
<hr>
<div class="refsect2">
<a name="GtkWidget-BUILDER-UI"></a><h3>GtkWidget as GtkBuildable</h3>
<p>
The GtkWidget implementation of the GtkBuildable interface supports a
custom &lt;accelerator&gt; element, which has attributes named key,
modifiers and signal and allows to specify accelerators.
</p>
<div class="example">
<a name="id3881529"></a><p class="title"><b>Example 83. A UI definition fragment specifying an accelerator</b></p>
<div class="example-contents"><pre class="programlisting">
&lt;object class="GtkButton"&gt;
  &lt;accelerator key="q" modifiers="GDK_CONTROL_MASK" signal="clicked"/&gt;
&lt;/object&gt;
</pre></div>
</div>
<br class="example-break"><p>
In addition to accelerators, <span class="structname">GtkWidget</span> also support a
custom &lt;accessible&gt; element, which supports actions and relations.
Properties on the accessible implementation of an object can be set by accessing the
internal child "accessible" of a <span class="structname">GtkWidget</span>.
</p>
<div class="example">
<a name="id3881561"></a><p class="title"><b>Example 84. A UI definition fragment specifying an accessible</b></p>
<div class="example-contents"><pre class="programlisting">
&lt;object class="GtkButton" id="label1"/&gt;
  &lt;property name="label"&gt;I am a Label for a Button&lt;/property&gt;
&lt;/object&gt;
&lt;object class="GtkButton" id="button1"&gt;
  &lt;accessibility&gt;
    &lt;action action_name="click" translatable="yes"&gt;Click the button.&lt;/action&gt;
    &lt;relation target="label1" type="labelled-by"/&gt;
  &lt;/accessibility&gt;
  &lt;child internal-child="accessible"&gt;
    &lt;object class="AtkObject" id="a11y-button1"&gt;
      &lt;property name="AtkObject::name"&gt;Clickable Button&lt;/property&gt;
    &lt;/object&gt;
  &lt;/child&gt;
&lt;/object&gt;
</pre></div>
</div>
<br class="example-break"><p>
Finally, GtkWidget allows style information such as style classes to
be associated with widgets, using the custom &lt;style&gt; element:
</p>
<div class="example">
<a name="id3881590"></a><p class="title"><b>Example 85. A UI definition fragment specifying an style class</b></p>
<div class="example-contents"><pre class="programlisting">
&lt;object class="GtkButton" id="button1"&gt;
  &lt;style&gt;
    &lt;class name="my-special-button-class"/&gt;
    &lt;class name="dark-button"/&gt;
  &lt;/style&gt;
&lt;/object&gt;
</pre></div>
</div>
<p><br class="example-break">
</p>
</div>
<p>
</p>
</div>
<div class="refsect1">
<a name="gtk3-GtkWidget.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GtkWidget"></a><h3>GtkWidget</h3>
<pre class="programlisting">typedef struct {
  GInitiallyUnowned parent_instance;

  GtkWidgetPrivate *priv;
} GtkWidget;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidgetClass"></a><h3>struct GtkWidgetClass</h3>
<pre class="programlisting">struct GtkWidgetClass {
  GInitiallyUnownedClass parent_class;


  guint activate_signal;

  /* seldomly overidden */
  void (*dispatch_child_properties_changed) (GtkWidget   *widget,
					     guint        n_pspecs,
					     GParamSpec **pspecs);

  /* basics */
  void (* destroy)             (GtkWidget        *widget);
  void (* show)		       (GtkWidget        *widget);
  void (* show_all)            (GtkWidget        *widget);
  void (* hide)		       (GtkWidget        *widget);
  void (* map)		       (GtkWidget        *widget);
  void (* unmap)	       (GtkWidget        *widget);
  void (* realize)	       (GtkWidget        *widget);
  void (* unrealize)	       (GtkWidget        *widget);
  void (* size_allocate)       (GtkWidget        *widget,
				GtkAllocation    *allocation);
  void (* state_changed)       (GtkWidget        *widget,
				GtkStateType   	  previous_state);
  void (* state_flags_changed) (GtkWidget        *widget,
				GtkStateFlags  	  previous_state_flags);
  void (* parent_set)	       (GtkWidget        *widget,
				GtkWidget        *previous_parent);
  void (* hierarchy_changed)   (GtkWidget        *widget,
				GtkWidget        *previous_toplevel);
  void (* style_set)	       (GtkWidget        *widget,
				GtkStyle         *previous_style);
  void (* direction_changed)   (GtkWidget        *widget,
				GtkTextDirection  previous_direction);
  void (* grab_notify)         (GtkWidget        *widget,
				gboolean          was_grabbed);
  void (* child_notify)        (GtkWidget	 *widget,
				GParamSpec       *pspec);
  gboolean (* draw)	       (GtkWidget	 *widget,
                                cairo_t          *cr);

  /* size requests */
  GtkSizeRequestMode (* get_request_mode)               (GtkWidget      *widget);

  void               (* get_preferred_height)           (GtkWidget       *widget,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);
  void               (* get_preferred_width_for_height) (GtkWidget       *widget,
                                                         gint             height,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_width)            (GtkWidget       *widget,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_height_for_width) (GtkWidget       *widget,
                                                         gint             width,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);

  /* Mnemonics */
  gboolean (* mnemonic_activate)        (GtkWidget           *widget,
                                         gboolean             group_cycling);

  /* explicit focus */
  void     (* grab_focus)               (GtkWidget           *widget);
  gboolean (* focus)                    (GtkWidget           *widget,
                                         GtkDirectionType     direction);

  /* keyboard navigation */
  void     (* move_focus)               (GtkWidget           *widget,
                                         GtkDirectionType     direction);
  gboolean (* keynav_failed)            (GtkWidget           *widget,
                                         GtkDirectionType     direction);

  /* events */
  gboolean (* event)			(GtkWidget	     *widget,
					 GdkEvent	     *event);
  gboolean (* button_press_event) (GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* button_release_event) (GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* scroll_event)		(GtkWidget           *widget,
					 GdkEventScroll      *event);
  gboolean (* motion_notify_event) (GtkWidget	     *widget,
					 GdkEventMotion      *event);
  gboolean (* delete_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* destroy_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* key_press_event)		(GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* key_release_event) (GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* enter_notify_event) (GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* leave_notify_event) (GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* configure_event)		(GtkWidget	     *widget,
					 GdkEventConfigure   *event);
  gboolean (* focus_in_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* focus_out_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* map_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* unmap_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* property_notify_event) (GtkWidget	     *widget,
					 GdkEventProperty    *event);
  gboolean (* selection_clear_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_request_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_notify_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* proximity_in_event) (GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* proximity_out_event) (GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* visibility_notify_event) (GtkWidget	     *widget,
					 GdkEventVisibility  *event);
  gboolean (* window_state_event) (GtkWidget	     *widget,
					 GdkEventWindowState *event);
  gboolean (* damage_event)             (GtkWidget           *widget,
                                         GdkEventExpose      *event);
  gboolean (* grab_broken_event)        (GtkWidget           *widget,
                                         GdkEventGrabBroken  *event);

  /* selection */
  void     (* selection_get)       (GtkWidget          *widget,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  void     (* selection_received)  (GtkWidget          *widget,
				    GtkSelectionData   *selection_data,
				    guint               time_);

  /* Source side drag signals */
  void     (* drag_begin)          (GtkWidget         *widget,
				    GdkDragContext     *context);
  void     (* drag_end)	           (GtkWidget	       *widget,
				    GdkDragContext     *context);
  void     (* drag_data_get)       (GtkWidget          *widget,
				    GdkDragContext     *context,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  void     (* drag_data_delete)    (GtkWidget          *widget,
				    GdkDragContext     *context);

  /* Target side drag signals */
  void     (* drag_leave)          (GtkWidget          *widget,
				    GdkDragContext     *context,
				    guint               time_);
  gboolean (* drag_motion)         (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    guint               time_);
  gboolean (* drag_drop)           (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    guint               time_);
  void     (* drag_data_received)  (GtkWidget          *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  gboolean (* drag_failed)         (GtkWidget          *widget,
                                    GdkDragContext     *context,
                                    GtkDragResult       result);

  /* Signals used only for keybindings */
  gboolean (* popup_menu)          (GtkWidget          *widget);

  /* If a widget has multiple tooltips/whatsthis, it should show the
   * one for the current focus location, or if that doesn't make
   * sense, should cycle through them showing each tip alongside
   * whatever piece of the widget it applies to.
   */
  gboolean (* show_help)           (GtkWidget          *widget,
                                    GtkWidgetHelpType   help_type);

  /* accessibility support
   */
  AtkObject *  (* get_accessible)     (GtkWidget *widget);

  void         (* screen_changed)     (GtkWidget *widget,
                                       GdkScreen *previous_screen);
  gboolean     (* can_activate_accel) (GtkWidget *widget,
                                       guint      signal_id);


  void         (* composited_changed) (GtkWidget *widget);

  gboolean     (* query_tooltip)      (GtkWidget  *widget,
				       gint        x,
				       gint        y,
				       gboolean    keyboard_tooltip,
				       GtkTooltip *tooltip);

  void         (* compute_expand)     (GtkWidget  *widget,
                                       gboolean   *hexpand_p,
                                       gboolean   *vexpand_p);

  void         (* adjust_size_request)    (GtkWidget         *widget,
                                           GtkOrientation     orientation,
                                           gint              *minimum_size,
                                           gint              *natural_size);
  void         (* adjust_size_allocation) (GtkWidget         *widget,
                                           GtkOrientation     orientation,
                                           gint              *minimum_size,
                                           gint              *natural_size,
                                           gint              *allocated_pos,
                                           gint              *allocated_size);

  void         (* style_updated)          (GtkWidget *widget);
};
</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a href="../gobject/gobject-The-Base-Object-Type.html#GInitiallyUnownedClass"><span class="type">GInitiallyUnownedClass</span></a> <em class="structfield"><code><a name="GtkWidgetClass.parent-class"></a>parent_class</code></em>;</span></p></td>
<td>The object class structure needs to be the first
element in the widget class structure in order for the class mechanism
to work correctly. This allows a GtkWidgetClass pointer to be cast to
a GObjectClass pointer.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GtkWidgetClass.activate-signal"></a>activate_signal</code></em>;</span></p></td>
<td>The signal to emit when a widget of this class is
activated, <a class="link" href="gtk3-GtkWidget.html#gtk-widget-activate" title="gtk_widget_activate ()"><code class="function">gtk_widget_activate()</code></a> handles the emission.
Implementation of this signal is optional.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.dispatch-child-properties-changed"></a>dispatch_child_properties_changed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.destroy"></a>destroy</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.show"></a>show</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.show-all"></a>show_all</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.hide"></a>hide</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.map"></a>map</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.unmap"></a>unmap</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.realize"></a>realize</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.unrealize"></a>unrealize</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.size-allocate"></a>size_allocate</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.state-changed"></a>state_changed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.state-flags-changed"></a>state_flags_changed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.parent-set"></a>parent_set</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.hierarchy-changed"></a>hierarchy_changed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.style-set"></a>style_set</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.direction-changed"></a>direction_changed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.grab-notify"></a>grab_notify</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.child-notify"></a>child_notify</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.draw"></a>draw</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.get-request-mode"></a>get_request_mode</code></em> ()</span></p></td>
<td>This allows a widget to tell its parent container whether
it prefers to be allocated in <a class="link" href="gtk3-GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> or
<a class="link" href="gtk3-GtkWidget.html#GTK-SIZE-REQUEST-WIDTH-FOR-HEIGHT:CAPS"><code class="literal">GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT</code></a> mode.
<a class="link" href="gtk3-GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> means the widget prefers to have
<a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-width"><code class="function">GtkWidgetClass.get_preferred_width()</code></a> called and then
<a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a> and is the default
return for unimplemented cases.
However it's important to note (as described below) that any widget
which trades height-for-width must respond properly to both
<a href="gtk3-GtkWidget.html#GtkSizeRequestMode"><span class="type">GtkSizeRequestModes</span></a> since it might be queried in either orientation
by its parent container.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-height"></a>get_preferred_height</code></em> ()</span></p></td>
<td>This is called by containers to obtain the minimum
and natural height of a widget. A widget that does not actually trade
any height for width or width for height only has to implement these
two virtual methods (<a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-width"><code class="function">GtkWidgetClass.get_preferred_width()</code></a> and
<a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-width-for-height"></a>get_preferred_width_for_height</code></em> ()</span></p></td>
<td>This is analogous to
<a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a> except that it
operates in the oposite orientation. It's rare that a widget actually
does <a class="link" href="gtk3-GtkWidget.html#GTK-SIZE-REQUEST-WIDTH-FOR-HEIGHT:CAPS"><code class="literal">GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT</code></a> requests but this can happen
when, for example, a widget or container gets additional columns to
compensate for a smaller allocated height.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-width"></a>get_preferred_width</code></em> ()</span></p></td>
<td>This is called by containers to obtain the minimum
and natural width of a widget. A widget will never be allocated a width
less than its minimum and will only ever be allocated a width greater
than the natural width once all of the said widget's siblings have
received their natural widths.
Furthermore, a widget will only ever be allocated a width greater than
its natural width if it was configured to receive extra expand space
from its parent container.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-height-for-width"></a>get_preferred_height_for_width</code></em> ()</span></p></td>
<td>This is similar to
<a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a> except that it is passed a
contextual width to request height for. By implementing this virtual
method it is possible for a <a class="link" href="gtk3-GtkLabel.html#GtkLabel" title="struct GtkLabel"><span class="type">GtkLabel</span></a> to tell its parent how much height
would be required if the label were to be allocated a said width.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.mnemonic-activate"></a>mnemonic_activate</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.grab-focus"></a>grab_focus</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.focus"></a>focus</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.move-focus"></a>move_focus</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.keynav-failed"></a>keynav_failed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.event"></a>event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.button-press-event"></a>button_press_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.button-release-event"></a>button_release_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.scroll-event"></a>scroll_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.motion-notify-event"></a>motion_notify_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.delete-event"></a>delete_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.destroy-event"></a>destroy_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.key-press-event"></a>key_press_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.key-release-event"></a>key_release_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.enter-notify-event"></a>enter_notify_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.leave-notify-event"></a>leave_notify_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.configure-event"></a>configure_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.focus-in-event"></a>focus_in_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.focus-out-event"></a>focus_out_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.map-event"></a>map_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.unmap-event"></a>unmap_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.property-notify-event"></a>property_notify_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.selection-clear-event"></a>selection_clear_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.selection-request-event"></a>selection_request_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.selection-notify-event"></a>selection_notify_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.proximity-in-event"></a>proximity_in_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.proximity-out-event"></a>proximity_out_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.visibility-notify-event"></a>visibility_notify_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.window-state-event"></a>window_state_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.damage-event"></a>damage_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.grab-broken-event"></a>grab_broken_event</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.selection-get"></a>selection_get</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.selection-received"></a>selection_received</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-begin"></a>drag_begin</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-end"></a>drag_end</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-data-get"></a>drag_data_get</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-data-delete"></a>drag_data_delete</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-leave"></a>drag_leave</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-motion"></a>drag_motion</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-drop"></a>drag_drop</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-data-received"></a>drag_data_received</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.drag-failed"></a>drag_failed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.popup-menu"></a>popup_menu</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.show-help"></a>show_help</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.get-accessible"></a>get_accessible</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.screen-changed"></a>screen_changed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.can-activate-accel"></a>can_activate_accel</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.composited-changed"></a>composited_changed</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.query-tooltip"></a>query_tooltip</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.compute-expand"></a>compute_expand</code></em> ()</span></p></td>
<td></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.adjust-size-request"></a>adjust_size_request</code></em> ()</span></p></td>
<td>Convert an initial size request from a widget's
<span class="type">GtkSizeRequest</span> virtual method implementations into a size request to
be used by parent containers in laying out the widget.
adjust_size_request adjusts <span class="emphasis"><em>from</em></span> a child widget's
original request <span class="emphasis"><em>to</em></span> what a parent container should
use for layout. The <em class="parameter"><code>for_size</code></em> argument will be -1 if the request should
not be for a particular size in the opposing orientation, i.e. if the
request is not height-for-width or width-for-height. If <em class="parameter"><code>for_size</code></em> is
greater than -1, it is the proposed allocation in the opposing
orientation that we need the request for. Implementations of
adjust_size_request should chain up to the default implementation,
which applies <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>'s margin properties and imposes any values
from <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>. Chaining up should be last,
<span class="emphasis"><em>after</em></span> your subclass adjusts the request, so
<a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> can apply constraints and add the margin properly.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.adjust-size-allocation"></a>adjust_size_allocation</code></em> ()</span></p></td>
<td>Convert an initial size allocation assigned
by a <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a> using <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a>, into an actual
size allocation to be used by the widget. adjust_size_allocation
adjusts <span class="emphasis"><em>to</em></span> a child widget's actual allocation
<span class="emphasis"><em>from</em></span> what a parent container computed for the
child. The adjusted allocation must be entirely within the original
allocation. In any custom implementation, chain up to the default
<a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> implementation of this method, which applies the margin
and alignment properties of <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>. Chain up
<span class="emphasis"><em>before</em></span> performing your own adjustments so your
own adjustments remove more allocation after the <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> base
class has already removed margin and alignment. The natural size
passed in should be adjusted in the same way as the allocated size,
which allows adjustments to perform alignments or other changes
based on natural size.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GtkWidgetClass.style-updated"></a>style_updated</code></em> ()</span></p></td>
<td></td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkCallback"></a><h3>GtkCallback ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                (*GtkCallback)                      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
<p>
The type of the callback functions used for e.g. iterating over
the children of a container, see <a class="link" href="gtk3-GtkContainer.html#gtk-container-foreach" title="gtk_container_foreach ()"><code class="function">gtk_container_foreach()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget to operate on</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>user-supplied data</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkRequisition"></a><h3>struct GtkRequisition</h3>
<pre class="programlisting">struct GtkRequisition {
  gint width;
  gint height;
};
</pre>
<p>
A <span class="structname">GtkRequisition</span> represents the desired size of a widget. See
<a class="xref" href="gtk3-GtkWidget.html#geometry-management" title="Height-for-width Geometry Management">the section called “Height-for-width Geometry Management”</a> for more information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GtkRequisition.width"></a>width</code></em>;</span></p></td>
<td>the widget's desired width</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GtkRequisition.height"></a>height</code></em>;</span></p></td>
<td>the widget's desired height</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkAllocation"></a><h3>GtkAllocation</h3>
<pre class="programlisting">typedef 	GdkRectangle	   GtkAllocation;
</pre>
<p>
A <span class="structname">GtkAllocation</span> of a widget represents region
which has been allocated to the widget by its parent. It is a subregion
of its parents allocation. See <a class="xref" href="gtk3-GtkWidget.html#geometry-management" title="Height-for-width Geometry Management">the section called “Height-for-width Geometry Management”</a> for
more information.
</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkSelectionData"></a><h3>GtkSelectionData</h3>
<pre class="programlisting">typedef struct {
  GdkAtom       selection;
  GdkAtom       target;
  GdkAtom       type;
  gint          format;
  guchar       *data;
  gint          length;
  GdkDisplay   *display;
} GtkSelectionData;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidgetAuxInfo"></a><h3>struct GtkWidgetAuxInfo</h3>
<pre class="programlisting">struct GtkWidgetAuxInfo {
  gint width;
  gint height;

  guint   halign : 4;
  guint   valign : 4;

  GtkBorder margin;
};
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidgetHelpType"></a><h3>enum GtkWidgetHelpType</h3>
<pre class="programlisting">typedef enum {
  GTK_WIDGET_HELP_TOOLTIP,
  GTK_WIDGET_HELP_WHATS_THIS
} GtkWidgetHelpType;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-new"></a><h3>gtk_widget_new ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         gtk_widget_new                      (<em class="parameter"><code><a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
This is a convenience function for creating a widget and setting
its properties in one go. For example you might write:
<code class="literal">gtk_widget_new (GTK_TYPE_LABEL, "label", "Hello World", "xalign",
0.0, NULL)</code> to create a left-aligned label. Equivalent to
<a href="../gobject/gobject-The-Base-Object-Type.html#g-object-new"><code class="function">g_object_new()</code></a>, but returns a widget so you don't have to
cast the object yourself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>type ID of the widget to create</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
<td>name of first property to set</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a new <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> of type <em class="parameter"><code>widget_type</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-destroy"></a><h3>gtk_widget_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_destroy                  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Destroys a widget.
</p>
<p>
When a widget is
destroyed, it will break any references it holds to other objects.
If the widget is inside a container, the widget will be removed
from the container. If the widget is a toplevel (derived from
<a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>), it will be removed from the list of toplevels, and the
reference GTK+ holds to it will be removed. Removing a
widget from its container or the list of toplevels results in the
widget being finalized, unless you've added additional references
to the widget with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a>.
</p>
<p>
In most cases, only toplevel widgets (windows) require explicit
destruction, because when you destroy a toplevel its children will
be destroyed as well.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-in-destruction"></a><h3>gtk_widget_in_destruction ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_in_destruction           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns whether the widget is currently being destroyed.
This information can sometimes be used to avoid doing
unnecessary work.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> is being destroyed</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-destroyed"></a><h3>gtk_widget_destroyed ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_destroyed                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> **widget_pointer</code></em>);</pre>
<p>
This function sets *<em class="parameter"><code>widget_pointer</code></em> to <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>widget_pointer</code></em> !=
<a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.  It's intended to be used as a callback connected to the
"destroy" signal of a widget. You connect <a class="link" href="gtk3-GtkWidget.html#gtk-widget-destroyed" title="gtk_widget_destroyed ()"><code class="function">gtk_widget_destroyed()</code></a>
as a signal handler, and pass the address of your widget variable
as user data. Then when the widget is destroyed, the variable will
be set to <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Useful for example to avoid multiple copies
of the same dialog.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget_pointer</code></em> :</span></p></td>
<td>address of a variable that contains <em class="parameter"><code>widget</code></em>. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unparent"></a><h3>gtk_widget_unparent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_unparent                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
This function is only for use in widget implementations.
Should be called by implementations of the remove method
on <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>, to dissociate a child from the container.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-show"></a><h3>gtk_widget_show ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_show                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Flags a widget to be displayed. Any widget that isn't shown will
not appear on the screen. If you want to show all the widgets in a
container, it's easier to call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()"><code class="function">gtk_widget_show_all()</code></a> on the
container, instead of individually showing the widgets.
</p>
<p>
Remember that you have to show the containers containing a widget,
in addition to the widget itself, before it will appear onscreen.
</p>
<p>
When a toplevel container is shown, it is immediately realized and
mapped; other shown widgets are realized and mapped when their
toplevel container is realized and mapped.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-show-now"></a><h3>gtk_widget_show_now ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_show_now                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Shows a widget. If the widget is an unmapped toplevel widget
(i.e. a <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> that has not yet been shown), enter the main
loop and wait for the window to actually be mapped. Be careful;
because the main loop is running, anything can happen during
this function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-hide"></a><h3>gtk_widget_hide ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_hide                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Reverses the effects of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()"><code class="function">gtk_widget_show()</code></a>, causing the widget to be
hidden (invisible to the user).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-show-all"></a><h3>gtk_widget_show_all ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_show_all                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Recursively shows a widget, and any child widgets (if the widget is
a container).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-map"></a><h3>gtk_widget_map ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_map                      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
This function is only for use in widget implementations. Causes
a widget to be mapped if it isn't already.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unmap"></a><h3>gtk_widget_unmap ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_unmap                    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
This function is only for use in widget implementations. Causes
a widget to be unmapped if it's currently mapped.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-realize"></a><h3>gtk_widget_realize ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_realize                  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Creates the GDK (windowing system) resources associated with a
widget.  For example, <em class="parameter"><code>widget-&gt;window</code></em> will be created when a widget
is realized.  Normally realization happens implicitly; if you show
a widget and all its parent containers, then the widget will be
realized and mapped automatically.
</p>
<p>
Realizing a widget requires all
the widget's parent widgets to be realized; calling
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-realize" title="gtk_widget_realize ()"><code class="function">gtk_widget_realize()</code></a> realizes the widget's parents in addition to
<em class="parameter"><code>widget</code></em> itself. If a widget is not yet inside a toplevel window
when you realize it, bad things will happen.
</p>
<p>
This function is primarily used in widget implementations, and
isn't very useful otherwise. Many times when you think you might
need it, a better approach is to connect to a signal that will be
called after the widget is realized automatically, such as
<span class="type">"draw"</span>. Or simply <a href="../gobject/gobject-Signals.html#g-signal-connect"><code class="function">g_signal_connect()</code></a> to the
<span class="type">"realize"</span> signal.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unrealize"></a><h3>gtk_widget_unrealize ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_unrealize                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
This function is only useful in widget implementations.
Causes a widget to be unrealized (frees all GDK resources
associated with the widget, such as <em class="parameter"><code>widget-&gt;window</code></em>).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-draw"></a><h3>gtk_widget_draw ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_draw                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
<p>
Draws <em class="parameter"><code>widget</code></em> to <em class="parameter"><code>cr</code></em>. The top left corner of the widget will be
drawn to the currently set origin point of <em class="parameter"><code>cr</code></em>.
</p>
<p>
You should pass a cairo context as <em class="parameter"><code>cr</code></em> argument that is in an
original state. Otherwise the resulting drawing is undefined. For
example changing the operator using <a href="../cairo/cairo-cairo-t.html#cairo-set-operator"><code class="function">cairo_set_operator()</code></a> or the
line width using <a href="../cairo/cairo-cairo-t.html#cairo-set-line-width"><code class="function">cairo_set_line_width()</code></a> might have unwanted side
effects.
You may however change the context's transform matrix - like with
<a href="../cairo/cairo-Transformations.html#cairo-scale"><code class="function">cairo_scale()</code></a>, <a href="../cairo/cairo-Transformations.html#cairo-translate"><code class="function">cairo_translate()</code></a> or <a href="../cairo/cairo-Transformations.html#cairo-set-matrix"><code class="function">cairo_set_matrix()</code></a> and clip
region with <a href="../cairo/cairo-cairo-t.html#cairo-clip"><code class="function">cairo_clip()</code></a> prior to calling this function. Also, it
is fine to modify the context with <a href="../cairo/cairo-cairo-t.html#cairo-save"><code class="function">cairo_save()</code></a> and
<a href="../cairo/cairo-cairo-t.html#cairo-push-group"><code class="function">cairo_push_group()</code></a> prior to calling this function.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>Special purpose widgets may contain special code for
rendering to the screen and might appear differently on screen
and when rendered using <a class="link" href="gtk3-GtkWidget.html#gtk-widget-draw" title="gtk_widget_draw ()"><code class="function">gtk_widget_draw()</code></a>.</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget to draw. It must be drawable (see
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-drawable" title="gtk_widget_is_drawable ()"><code class="function">gtk_widget_is_drawable()</code></a>) and a size must have been allocated.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a cairo context to draw to</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-draw"></a><h3>gtk_widget_queue_draw ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_queue_draw               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Equivalent to calling <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-draw-area" title="gtk_widget_queue_draw_area ()"><code class="function">gtk_widget_queue_draw_area()</code></a> for the
entire area of a widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-resize"></a><h3>gtk_widget_queue_resize ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_queue_resize             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
This function is only for use in widget implementations.
Flags a widget to have its size renegotiated; should
be called when a widget for some reason has a new size request.
For example, when you change the text in a <a class="link" href="gtk3-GtkLabel.html#GtkLabel" title="struct GtkLabel"><span class="type">GtkLabel</span></a>, <a class="link" href="gtk3-GtkLabel.html#GtkLabel" title="struct GtkLabel"><span class="type">GtkLabel</span></a>
queues a resize to ensure there's enough space for the new text.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>You cannot call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a> on a widget
from inside its implementation of the GtkWidgetClass::size_allocate 
virtual method. Calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a> from inside
GtkWidgetClass::size_allocate will be silently ignored.</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-resize-no-redraw"></a><h3>gtk_widget_queue_resize_no_redraw ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_queue_resize_no_redraw   (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
This function works like <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a>,
except that the widget is not invalidated.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-size-request"></a><h3>gtk_widget_size_request ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_size_request             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_size_request</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()"><code class="function">gtk_widget_get_preferred_size()</code></a> instead.</p>
</div>
<p>
This function is typically used when implementing a <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>
subclass.  Obtains the preferred size of a widget. The container
uses this information to arrange its child widgets and decide what
size allocations to give them with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a>.
</p>
<p>
You can also call this function from an application, with some
caveats. Most notably, getting a size request requires the widget
to be associated with a screen, because font information may be
needed. Multihead-aware applications should keep this in mind.
</p>
<p>
Also remember that the size request is not necessarily the size
a widget will actually be allocated.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>requisition</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> to be filled in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-child-requisition"></a><h3>gtk_widget_get_child_requisition ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_child_requisition    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_get_child_requisition</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()"><code class="function">gtk_widget_get_preferred_size()</code></a> instead.</p>
</div>
<p>
This function is only for use in widget implementations. Obtains
<em class="parameter"><code>widget-&gt;requisition</code></em>, unless someone has forced a particular
geometry on the widget (e.g. with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>),
in which case it returns that geometry instead of the widget's
requisition.
</p>
<p>
This function differs from <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> in that
it retrieves the last size request value from <em class="parameter"><code>widget-&gt;requisition</code></em>,
while <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> actually calls the "size_request" method
on <em class="parameter"><code>widget</code></em> to compute the size request and fill in <em class="parameter"><code>widget-&gt;requisition</code></em>,
and only then returns <em class="parameter"><code>widget-&gt;requisition</code></em>.
</p>
<p>
Because this function does not call the "size_request" method, it
can only be used when you know that <em class="parameter"><code>widget-&gt;requisition</code></em> is
up-to-date, that is, <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> has been called
since the last time a resize was queued. In general, only container
implementations have this information; applications should use
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>requisition</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> to be filled in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-size-allocate"></a><h3>gtk_widget_size_allocate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_size_allocate            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);</pre>
<p>
This function is only used by <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a> subclasses, to assign a size
and position to their child widgets.
</p>
<p>
In this function, the allocation may be adjusted. It will be forced
to a 1x1 minimum size, and the adjust_size_allocation virtual
method on the child will be used to adjust the allocation. Standard
adjustments include removing the widget's margins, and applying the
widget's <span class="type">"halign"</span> and <span class="type">"valign"</span> properties.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allocation</code></em> :</span></p></td>
<td>position and size to be allocated to <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-accelerator"></a><h3>gtk_widget_add_accelerator ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_add_accelerator          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *accel_signal</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> accel_key</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> accel_mods</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkAccelFlags" title="enum GtkAccelFlags"><span class="type">GtkAccelFlags</span></a> accel_flags</code></em>);</pre>
<p>
Installs an accelerator for this <em class="parameter"><code>widget</code></em> in <em class="parameter"><code>accel_group</code></em> that causes
<em class="parameter"><code>accel_signal</code></em> to be emitted if the accelerator is activated.
The <em class="parameter"><code>accel_group</code></em> needs to be added to the widget's toplevel via
<a class="link" href="gtk3-GtkWindow.html#gtk-window-add-accel-group" title="gtk_window_add_accel_group ()"><code class="function">gtk_window_add_accel_group()</code></a>, and the signal must be of type <code class="literal">G_RUN_ACTION</code>.
Accelerators added through this function are not user changeable during
runtime. If you want to support accelerators that can be changed by the
user, use <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-add-entry" title="gtk_accel_map_add_entry ()"><code class="function">gtk_accel_map_add_entry()</code></a> and <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-accel-path" title="gtk_widget_set_accel_path ()"><code class="function">gtk_widget_set_accel_path()</code></a> or
<a class="link" href="gtk3-GtkMenuItem.html#gtk-menu-item-set-accel-path" title="gtk_menu_item_set_accel_path ()"><code class="function">gtk_menu_item_set_accel_path()</code></a> instead.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>widget to install an accelerator on</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_signal</code></em> :</span></p></td>
<td>widget signal to emit on accelerator activation</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_group</code></em> :</span></p></td>
<td>accel group for this widget, added to its toplevel</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_key</code></em> :</span></p></td>
<td>GDK keyval of the accelerator</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_mods</code></em> :</span></p></td>
<td>modifier key combination of the accelerator</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_flags</code></em> :</span></p></td>
<td>flag accelerators, e.g. <code class="literal">GTK_ACCEL_VISIBLE</code>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-remove-accelerator"></a><h3>gtk_widget_remove_accelerator ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_remove_accelerator       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> accel_key</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> accel_mods</code></em>);</pre>
<p>
Removes an accelerator from <em class="parameter"><code>widget</code></em>, previously installed with
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-accelerator" title="gtk_widget_add_accelerator ()"><code class="function">gtk_widget_add_accelerator()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>widget to install an accelerator on</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_group</code></em> :</span></p></td>
<td>accel group for this widget</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_key</code></em> :</span></p></td>
<td>GDK keyval of the accelerator</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_mods</code></em> :</span></p></td>
<td>modifier key combination of the accelerator</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>whether an accelerator was installed and could be removed</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-accel-path"></a><h3>gtk_widget_set_accel_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_accel_path           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *accel_path</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>);</pre>
<p>
Given an accelerator group, <em class="parameter"><code>accel_group</code></em>, and an accelerator path,
<em class="parameter"><code>accel_path</code></em>, sets up an accelerator in <em class="parameter"><code>accel_group</code></em> so whenever the
key binding that is defined for <em class="parameter"><code>accel_path</code></em> is pressed, <em class="parameter"><code>widget</code></em>
will be activated.  This removes any accelerators (for any
accelerator group) installed by previous calls to
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-accel-path" title="gtk_widget_set_accel_path ()"><code class="function">gtk_widget_set_accel_path()</code></a>. Associating accelerators with
paths allows them to be modified by the user and the modifications
to be saved for future use. (See <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save" title="gtk_accel_map_save ()"><code class="function">gtk_accel_map_save()</code></a>.)
</p>
<p>
This function is a low level function that would most likely
be used by a menu creation system like <a class="link" href="gtk3-GtkUIManager.html#GtkUIManager" title="struct GtkUIManager"><span class="type">GtkUIManager</span></a>. If you
use <a class="link" href="gtk3-GtkUIManager.html#GtkUIManager" title="struct GtkUIManager"><span class="type">GtkUIManager</span></a>, setting up accelerator paths will be done
automatically.
</p>
<p>
Even when you you aren't using <a class="link" href="gtk3-GtkUIManager.html#GtkUIManager" title="struct GtkUIManager"><span class="type">GtkUIManager</span></a>, if you only want to
set up accelerators on menu items <a class="link" href="gtk3-GtkMenuItem.html#gtk-menu-item-set-accel-path" title="gtk_menu_item_set_accel_path ()"><code class="function">gtk_menu_item_set_accel_path()</code></a>
provides a somewhat more convenient interface.
</p>
<p>
Note that <em class="parameter"><code>accel_path</code></em> string will be stored in a <a href="../glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>. Therefore, if you
pass a static string, you can save some memory by interning it first with
<a href="../glib/glib-Quarks.html#g-intern-static-string"><code class="function">g_intern_static_string()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_path</code></em> :</span></p></td>
<td>path used to look up the accelerator. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>accel_group</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-list-accel-closures"></a><h3>gtk_widget_list_accel_closures ()</h3>
<pre class="programlisting"><a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gtk_widget_list_accel_closures      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Lists the closures used by <em class="parameter"><code>widget</code></em> for accelerator group connections
with <a class="link" href="gtk3-Keyboard-Accelerators.html#gtk-accel-group-connect-by-path" title="gtk_accel_group_connect_by_path ()"><code class="function">gtk_accel_group_connect_by_path()</code></a> or <a class="link" href="gtk3-Keyboard-Accelerators.html#gtk-accel-group-connect" title="gtk_accel_group_connect ()"><code class="function">gtk_accel_group_connect()</code></a>.
The closures can be used to monitor accelerator changes on <em class="parameter"><code>widget</code></em>,
by connecting to the <em class="parameter"><code>GtkAccelGroup</code></em>::accel-changed signal of the
<a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup" title="struct GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> of a closure which can be found out with
<a class="link" href="gtk3-Keyboard-Accelerators.html#gtk-accel-group-from-accel-closure" title="gtk_accel_group_from_accel_closure ()"><code class="function">gtk_accel_group_from_accel_closure()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>widget to list accelerator closures for</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a newly allocated <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of closures. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GClosure]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-can-activate-accel"></a><h3>gtk_widget_can_activate_accel ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_can_activate_accel       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>);</pre>
<p>
Determines whether an accelerator that activates the signal
identified by <em class="parameter"><code>signal_id</code></em> can currently be activated.
This is done by emitting the <span class="type">"can-activate-accel"</span>
signal on <em class="parameter"><code>widget</code></em>; if the signal isn't overridden by a
handler or in a derived widget, then the default check is
that the widget must be sensitive, and the widget and all
its ancestors mapped.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td>
<td>the ID of a signal installed on <em class="parameter"><code>widget</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the accelerator can be activated.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-event"></a><h3>gtk_widget_event ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_event                    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> *event</code></em>);</pre>
<p>
Rarely-used function. This function is used to emit
the event signals on a widget (those signals should never
be emitted without using this function to do so).
If you want to synthesize an event though, don't use this function;
instead, use <a class="link" href="gtk3-General.html#gtk-main-do-event" title="gtk_main_do_event ()"><code class="function">gtk_main_do_event()</code></a> so the event will behave as if
it were in the event queue. Don't synthesize expose events; instead,
use <a href="../gdk3/gdk3-Windows.html#gdk-window-invalidate-rect"><code class="function">gdk_window_invalidate_rect()</code></a> to invalidate a region of the
window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
<td>a <a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>return from the event signal emission (<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if
the event was handled)</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-activate"></a><h3>gtk_widget_activate ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_activate                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
For widgets that can be "activated" (buttons, menu items, etc.)
this function activates them. Activation is what happens when you
press Enter on a widget during key navigation. If <em class="parameter"><code>widget</code></em> isn't
activatable, the function returns <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> that's activatable</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget was activatable</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-reparent"></a><h3>gtk_widget_reparent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_reparent                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *new_parent</code></em>);</pre>
<p>
Moves a widget from one <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a> to another, handling reference
count issues to avoid destroying the widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>new_parent</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a> to move the widget into</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-intersect"></a><h3>gtk_widget_intersect ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_intersect                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Points-Rectangles-and-Regions.html#GdkRectangle"><span class="type">GdkRectangle</span></a> *area</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Points-Rectangles-and-Regions.html#GdkRectangle"><span class="type">GdkRectangle</span></a> *intersection</code></em>);</pre>
<p>
Computes the intersection of a <em class="parameter"><code>widget</code></em>'s area and <em class="parameter"><code>area</code></em>, storing
the intersection in <em class="parameter"><code>intersection</code></em>, and returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was
an intersection.  <em class="parameter"><code>intersection</code></em> may be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if you're only
interested in whether there was an intersection.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>area</code></em> :</span></p></td>
<td>a rectangle</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>intersection</code></em> :</span></p></td>
<td>rectangle to store intersection of <em class="parameter"><code>widget</code></em> and <em class="parameter"><code>area</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was an intersection</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-focus"></a><h3>gtk_widget_is_focus ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_is_focus                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines if the widget is the focus widget within its
toplevel. (This does not mean that the <code class="literal">HAS_FOCUS</code> flag is
necessarily set; <code class="literal">HAS_FOCUS</code> will only be set if the
toplevel widget additionally has the global input focus.)
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is the focus widget.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-grab-focus"></a><h3>gtk_widget_grab_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_grab_focus               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Causes <em class="parameter"><code>widget</code></em> to have the keyboard focus for the <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> it's
inside. <em class="parameter"><code>widget</code></em> must be a focusable widget, such as a <a class="link" href="gtk3-GtkEntry.html#GtkEntry" title="struct GtkEntry"><span class="type">GtkEntry</span></a>;
something like <a class="link" href="gtk3-GtkFrame.html#GtkFrame" title="struct GtkFrame"><span class="type">GtkFrame</span></a> won't work.
</p>
<p>
More precisely, it must have the <code class="literal">GTK_CAN_FOCUS</code> flag set. Use
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-can-focus" title="gtk_widget_set_can_focus ()"><code class="function">gtk_widget_set_can_focus()</code></a> to modify that flag.
</p>
<p>
The widget also needs to be realized and mapped. This is indicated by the
related signals. Grabbing the focus immediately after creating the widget
will likely fail and cause critical warnings.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-grab-default"></a><h3>gtk_widget_grab_default ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_grab_default             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Causes <em class="parameter"><code>widget</code></em> to become the default widget. <em class="parameter"><code>widget</code></em> must have the
<code class="literal">GTK_CAN_DEFAULT</code> flag set; typically you have to set this flag
yourself by calling <code class="literal">gtk_widget_set_can_default (<em class="parameter"><code>widget</code></em>,
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>)</code>. The default widget is activated when
the user presses Enter in a window. Default widgets must be
activatable, that is, <a class="link" href="gtk3-GtkWidget.html#gtk-widget-activate" title="gtk_widget_activate ()"><code class="function">gtk_widget_activate()</code></a> should affect them. Note
that <a class="link" href="gtk3-GtkEntry.html#GtkEntry" title="struct GtkEntry"><span class="type">GtkEntry</span></a> widgets require the "activates-default" property
set to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> before they activate the default widget when Enter
is pressed and the <a class="link" href="gtk3-GtkEntry.html#GtkEntry" title="struct GtkEntry"><span class="type">GtkEntry</span></a> is focused.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-name"></a><h3>gtk_widget_set_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_name                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>
Widgets can be named, which allows you to refer to them from a
CSS file. You can apply a style to widgets with a particular name
in the CSS file. See the documentation for the CSS syntax (on the
same page as the docs for <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a>).
</p>
<p>
Note that the CSS syntax has certain special characters to delimit
and represent elements in a selector (period, #, &gt;, *...),
so using these will make your widget impossible to match by name.
Any combination of alphanumeric symbols, dashes and underscores will
suffice.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>name for the widget</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-name"></a><h3>gtk_widget_get_name ()</h3>
<pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gtk_widget_get_name                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Retrieves the name of a widget. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()"><code class="function">gtk_widget_set_name()</code></a> for the
significance of widget names.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>name of the widget. This string is owned by GTK+ and
should not be modified or freed</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-state"></a><h3>gtk_widget_set_state ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_state                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_set_state</code> is deprecated and should not be used in newly-written code. 3.0. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-state-flags" title="gtk_widget_set_state_flags ()"><code class="function">gtk_widget_set_state_flags()</code></a> instead.</p>
</div>
<p>
This function is for use in widget implementations. Sets the state
of a widget (insensitive, prelighted, etc.) Usually you should set
the state using wrapper functions such as <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-sensitive" title="gtk_widget_set_sensitive ()"><code class="function">gtk_widget_set_sensitive()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
<td>new state for <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-sensitive"></a><h3>gtk_widget_set_sensitive ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_sensitive            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sensitive</code></em>);</pre>
<p>
Sets the sensitivity of a widget. A widget is sensitive if the user
can interact with it. Insensitive widgets are "grayed out" and the
user can't interact with them. Insensitive widgets are known as
"inactive", "disabled", or "ghosted" in some other toolkits.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sensitive</code></em> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to make the widget sensitive</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-parent"></a><h3>gtk_widget_set_parent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_parent               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *parent</code></em>);</pre>
<p>
This function is useful only when implementing subclasses of
<a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>.
Sets the container as the parent of <em class="parameter"><code>widget</code></em>, and takes care of
some details such as updating the state and style of the child
to reflect its new location. The opposite function is
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-unparent" title="gtk_widget_unparent ()"><code class="function">gtk_widget_unparent()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
<td>parent container</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-parent-window"></a><h3>gtk_widget_set_parent_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_parent_window        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *parent_window</code></em>);</pre>
<p>
Sets a non default parent window for <em class="parameter"><code>widget</code></em>.
</p>
<p>
For GtkWindow classes, setting a <em class="parameter"><code>parent_window</code></em> effects whether
the window is a toplevel window or can be embedded into other
widgets.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
For GtkWindow classes, this needs to be called before the
window is realized.
</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parent_window</code></em> :</span></p></td>
<td>the new parent window.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-parent-window"></a><h3>gtk_widget_get_parent_window ()</h3>
<pre class="programlisting"><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="returnvalue">GdkWindow</span></a> *         gtk_widget_get_parent_window        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets <em class="parameter"><code>widget</code></em>'s parent window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the parent window of <em class="parameter"><code>widget</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-events"></a><h3>gtk_widget_set_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_events               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> events</code></em>);</pre>
<p>
Sets the event mask (see <a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a>) for a widget. The event
mask determines which events a widget will receive. Keep in mind
that different widgets have different default event masks, and by
changing the event mask you may disrupt a widget's functionality,
so be careful. This function must be called while a widget is
unrealized. Consider <a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-events" title="gtk_widget_add_events ()"><code class="function">gtk_widget_add_events()</code></a> for widgets that are
already realized, or if you want to preserve the existing event
mask. This function can't be used with <span class="type">GTK_NO_WINDOW</span> widgets;
to get events on those widgets, place them inside a <a class="link" href="gtk3-GtkEventBox.html#GtkEventBox" title="struct GtkEventBox"><span class="type">GtkEventBox</span></a>
and receive events on the event box.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>events</code></em> :</span></p></td>
<td>event mask</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-events"></a><h3>gtk_widget_get_events ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gtk_widget_get_events               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the event mask for the widget (a bitfield containing flags
from the <a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a> enumeration). These are the events that the widget
will receive.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>event mask for <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-events"></a><h3>gtk_widget_add_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_add_events               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> events</code></em>);</pre>
<p>
Adds the events in the bitfield <em class="parameter"><code>events</code></em> to the event mask for
<em class="parameter"><code>widget</code></em>. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-events" title="gtk_widget_set_events ()"><code class="function">gtk_widget_set_events()</code></a> for details.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>events</code></em> :</span></p></td>
<td>an event mask, see <a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-device-events"></a><h3>gtk_widget_set_device_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_device_events        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a> events</code></em>);</pre>
<p>
Sets the device event mask (see <a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a>) for a widget. The event
mask determines which events a widget will receive from <em class="parameter"><code>device</code></em>. Keep
in mind that different widgets have different default event masks, and by
changing the event mask you may disrupt a widget's functionality,
so be careful. This function must be called while a widget is
unrealized. Consider <a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-device-events" title="gtk_widget_add_device_events ()"><code class="function">gtk_widget_add_device_events()</code></a> for widgets that are
already realized, or if you want to preserve the existing event
mask. This function can't be used with <span class="type">GTK_NO_WINDOW</span> widgets;
to get events on those widgets, place them inside a <a class="link" href="gtk3-GtkEventBox.html#GtkEventBox" title="struct GtkEventBox"><span class="type">GtkEventBox</span></a>
and receive events on the event box.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td>
<td>a <a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>events</code></em> :</span></p></td>
<td>event mask</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-device-events"></a><h3>gtk_widget_get_device_events ()</h3>
<pre class="programlisting"><a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="returnvalue">GdkEventMask</span></a>        gtk_widget_get_device_events        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>);</pre>
<p>
Returns the events mask for the widget corresponding to an specific device. These
are the events that the widget will receive when <em class="parameter"><code>device</code></em> operates on it.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td>
<td>a <a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>device event mask for <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-device-events"></a><h3>gtk_widget_add_device_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_add_device_events        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a> events</code></em>);</pre>
<p>
Adds the device events in the bitfield <em class="parameter"><code>events</code></em> to the event mask for
<em class="parameter"><code>widget</code></em>. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-device-events" title="gtk_widget_set_device_events ()"><code class="function">gtk_widget_set_device_events()</code></a> for details.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td>
<td>a <a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>events</code></em> :</span></p></td>
<td>an event mask, see <a href="../gdk3/gdk3-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-device-enabled"></a><h3>gtk_widget_set_device_enabled ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_device_enabled       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
<p>
Enables or disables a <a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> to interact with <em class="parameter"><code>widget</code></em>
and all its children.
</p>
<p>
It does so by descending through the <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> hierarchy
and enabling the same mask that is has for core events
(i.e. the one that <a href="../gdk3/gdk3-Windows.html#gdk-window-get-events"><code class="function">gdk_window_get_events()</code></a> returns).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td>
<td>a <a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
<td>whether to enable the device</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-device-enabled"></a><h3>gtk_widget_get_device_enabled ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_device_enabled       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>);</pre>
<p>
Returns whether <em class="parameter"><code>device</code></em> can interact with <em class="parameter"><code>widget</code></em> and its
children. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-device-enabled" title="gtk_widget_set_device_enabled ()"><code class="function">gtk_widget_set_device_enabled()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td>
<td>a <a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is <em class="parameter"><code>device</code></em> is enabled for <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-toplevel"></a><h3>gtk_widget_get_toplevel ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         gtk_widget_get_toplevel             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
This function returns the topmost widget in the container hierarchy
<em class="parameter"><code>widget</code></em> is a part of. If <em class="parameter"><code>widget</code></em> has no parent widgets, it will be
returned as the topmost widget. No reference will be added to the
returned widget; it should not be unreferenced.
</p>
<p>
Note the difference in behavior vs. <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-ancestor" title="gtk_widget_get_ancestor ()"><code class="function">gtk_widget_get_ancestor()</code></a>;
<code class="literal">gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)</code>
would return
<a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>widget</code></em> wasn't inside a toplevel window, and if the
window was inside a <span class="type">GtkWindow-derived</span> widget which was in turn
inside the toplevel <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>. While the second case may
seem unlikely, it actually happens when a <a class="link" href="gtk3-GtkPlug.html#GtkPlug" title="struct GtkPlug"><span class="type">GtkPlug</span></a> is embedded
inside a <a class="link" href="gtk3-GtkSocket.html#GtkSocket" title="struct GtkSocket"><span class="type">GtkSocket</span></a> within the same application.
</p>
<p>
To reliably find the toplevel <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>, use
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-toplevel" title="gtk_widget_get_toplevel ()"><code class="function">gtk_widget_get_toplevel()</code></a> and check if the <code class="literal">TOPLEVEL</code> flags
is set on the result.
</p>
<div class="informalexample"><pre class="programlisting">
 GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
 if (gtk_widget_is_toplevel (toplevel))
   {
     /* Perform action on toplevel. */
   }
</pre></div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the topmost ancestor of <em class="parameter"><code>widget</code></em>, or <em class="parameter"><code>widget</code></em> itself
if there's no ancestor. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-ancestor"></a><h3>gtk_widget_get_ancestor ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         gtk_widget_get_ancestor             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> widget_type</code></em>);</pre>
<p>
Gets the first ancestor of <em class="parameter"><code>widget</code></em> with type <em class="parameter"><code>widget_type</code></em>. For example,
<code class="literal">gtk_widget_get_ancestor (widget, GTK_TYPE_BOX)</code> gets
the first <a class="link" href="gtk3-GtkBox.html#GtkBox" title="struct GtkBox"><span class="type">GtkBox</span></a> that's an ancestor of <em class="parameter"><code>widget</code></em>. No reference will be
added to the returned widget; it should not be unreferenced. See note
about checking for a toplevel <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> in the docs for
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-toplevel" title="gtk_widget_get_toplevel ()"><code class="function">gtk_widget_get_toplevel()</code></a>.
</p>
<p>
Note that unlike <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-ancestor" title="gtk_widget_is_ancestor ()"><code class="function">gtk_widget_is_ancestor()</code></a>, <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-ancestor" title="gtk_widget_get_ancestor ()"><code class="function">gtk_widget_get_ancestor()</code></a>
considers <em class="parameter"><code>widget</code></em> to be an ancestor of itself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget_type</code></em> :</span></p></td>
<td>ancestor type</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the ancestor widget, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-visual"></a><h3>gtk_widget_get_visual ()</h3>
<pre class="programlisting"><a href="../gdk3/gdk3-Visuals.html#GdkVisual"><span class="returnvalue">GdkVisual</span></a> *         gtk_widget_get_visual               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the visual that will be used to render <em class="parameter"><code>widget</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the visual for <em class="parameter"><code>widget</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-visual"></a><h3>gtk_widget_set_visual ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_visual               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Visuals.html#GdkVisual"><span class="type">GdkVisual</span></a> *visual</code></em>);</pre>
<p>
Sets the visual that should be used for by widget and its children for
creating <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindows</span></a>. The visual must be on the same <a href="../gdk3/GdkScreen.html"><span class="type">GdkScreen</span></a> as
returned by <code class="function">gdk_widget_get_screen()</code>, so handling the
<span class="type">"screen-changed"</span> signal is necessary.
</p>
<p>
Setting a new <em class="parameter"><code>visual</code></em> will not cause <em class="parameter"><code>widget</code></em> to recreate its windows,
so you should call this function before <em class="parameter"><code>widget</code></em> is realized.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>visual</code></em> :</span></p></td>
<td>visual to be used or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to unset a previous one</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-pointer"></a><h3>gtk_widget_get_pointer ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_pointer              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *y</code></em>);</pre>
<p>
Obtains the location of the mouse pointer in widget coordinates.
Widget coordinates are a bit odd; for historical reasons, they are
defined as <em class="parameter"><code>widget-&gt;window</code></em> coordinates for widgets that are not
<span class="type">GTK_NO_WINDOW</span> widgets, and are relative to <em class="parameter"><code>widget-&gt;allocation.x</code></em>,
<em class="parameter"><code>widget-&gt;allocation.y</code></em> for widgets that are <span class="type">GTK_NO_WINDOW</span> widgets.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
<td>return location for the X coordinate, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
<td>return location for the Y coordinate, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-ancestor"></a><h3>gtk_widget_is_ancestor ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_is_ancestor              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *ancestor</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> is somewhere inside <em class="parameter"><code>ancestor</code></em>, possibly with
intermediate containers.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>ancestor</code></em> :</span></p></td>
<td>another <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>ancestor</code></em> contains <em class="parameter"><code>widget</code></em> as a child,
grandchild, great grandchild, etc.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-translate-coordinates"></a><h3>gtk_widget_translate_coordinates ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_translate_coordinates    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *src_widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *dest_widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_y</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_y</code></em>);</pre>
<p>
Translate coordinates relative to <em class="parameter"><code>src_widget</code></em>'s allocation to coordinates
relative to <em class="parameter"><code>dest_widget</code></em>'s allocations. In order to perform this
operation, both widgets must be realized, and must share a common
toplevel.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_x</code></em> :</span></p></td>
<td>X position relative to <em class="parameter"><code>src_widget</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_y</code></em> :</span></p></td>
<td>Y position relative to <em class="parameter"><code>src_widget</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_x</code></em> :</span></p></td>
<td>location to store X position relative to <em class="parameter"><code>dest_widget</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_y</code></em> :</span></p></td>
<td>location to store Y position relative to <em class="parameter"><code>dest_widget</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if either widget was not realized, or there
was no common ancestor. In this case, nothing is stored in
*<em class="parameter"><code>dest_x</code></em> and *<em class="parameter"><code>dest_y</code></em>. Otherwise <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-hide-on-delete"></a><h3>gtk_widget_hide_on_delete ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_hide_on_delete           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Utility function; intended to be connected to the <span class="type">"delete-event"</span>
signal on a <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>. The function calls <a class="link" href="gtk3-GtkWidget.html#gtk-widget-hide" title="gtk_widget_hide ()"><code class="function">gtk_widget_hide()</code></a> on its
argument, then returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. If connected to ::delete-event, the
result is that clicking the close button for a window (on the
window frame, top right corner usually) will hide but not destroy
the window. By default, GTK+ destroys windows when ::delete-event
is received.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td><a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a></td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-style"></a><h3>gtk_widget_set_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_style                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="type">GtkStyle</span></a> *style</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_set_style</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>
Used to set the <a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="type">GtkStyle</span></a> for a widget (<em class="parameter"><code>widget-&gt;style</code></em>). Since
GTK 3, this function does nothing, the passed in style is ignored.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>style</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="type">GtkStyle</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to remove the effect
of a previous call to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-style" title="gtk_widget_set_style ()"><code class="function">gtk_widget_set_style()</code></a> and go back to
the default style. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-ensure-style"></a><h3>gtk_widget_ensure_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_ensure_style             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_ensure_style</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>
Ensures that <em class="parameter"><code>widget</code></em> has a style (<em class="parameter"><code>widget-&gt;style</code></em>).
</p>
<p>
Not a very useful function; most of the time, if you
want the style, the widget is realized, and realized
widgets are guaranteed to have a style already.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-style"></a><h3>gtk_widget_get_style ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="returnvalue">GtkStyle</span></a> *          gtk_widget_get_style                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_get_style</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>
Simply an accessor function that returns <em class="parameter"><code>widget-&gt;style</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the widget's <a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="type">GtkStyle</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-reset-rc-styles"></a><h3>gtk_widget_reset_rc_styles ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_reset_rc_styles          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_reset_rc_styles</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead, and <a class="link" href="gtk3-GtkWidget.html#gtk-widget-reset-style" title="gtk_widget_reset_style ()"><code class="function">gtk_widget_reset_style()</code></a></p>
</div>
<p>
Reset the styles of <em class="parameter"><code>widget</code></em> and all descendents, so when
they are looked up again, they get the correct values
for the currently loaded RC file settings.
</p>
<p>
This function is not useful for applications.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-default-style"></a><h3>gtk_widget_get_default_style ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="returnvalue">GtkStyle</span></a> *          gtk_widget_get_default_style        (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_get_default_style</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead, and
    <a class="link" href="gtk3-GtkCssProvider.html#gtk-css-provider-get-default" title="gtk_css_provider_get_default ()"><code class="function">gtk_css_provider_get_default()</code></a> to obtain a <a class="link" href="gtk3-GtkStyleProvider.html#GtkStyleProvider" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a>
    with the default widget style information.</p>
</div>
<p>
Returns the default style used by all widgets initially.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the default style. This <a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="type">GtkStyle</span></a>
object is owned by GTK+ and should not be modified or freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-direction"></a><h3>gtk_widget_set_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_direction            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="type">GtkTextDirection</span></a> dir</code></em>);</pre>
<p>
Sets the reading direction on a particular widget. This direction
controls the primary direction for widgets containing text,
and also the direction in which the children of a container are
packed. The ability to set the direction is present in order
so that correct localization into languages with right-to-left
reading directions can be done. Generally, applications will
let the default reading direction present, except for containers
where the containers are arranged in an order that is explicitely
visual rather than logical (such as buttons for text justification).
</p>
<p>
If the direction is set to <code class="literal">GTK_TEXT_DIR_NONE</code>, then the value
set by <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-default-direction" title="gtk_widget_set_default_direction ()"><code class="function">gtk_widget_set_default_direction()</code></a> will be used.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dir</code></em> :</span></p></td>
<td>the new direction</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkTextDirection"></a><h3>enum GtkTextDirection</h3>
<pre class="programlisting">typedef enum {
  GTK_TEXT_DIR_NONE,
  GTK_TEXT_DIR_LTR,
  GTK_TEXT_DIR_RTL
} GtkTextDirection;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-direction"></a><h3>gtk_widget_get_direction ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>    gtk_widget_get_direction            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the reading direction for a particular widget. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-direction" title="gtk_widget_set_direction ()"><code class="function">gtk_widget_set_direction()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the reading direction for the widget.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-default-direction"></a><h3>gtk_widget_set_default_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_default_direction    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="type">GtkTextDirection</span></a> dir</code></em>);</pre>
<p>
Sets the default reading direction for widgets where the
direction has not been explicitly set by <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-direction" title="gtk_widget_set_direction ()"><code class="function">gtk_widget_set_direction()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>dir</code></em> :</span></p></td>
<td>the new default direction. This cannot be
<code class="literal">GTK_TEXT_DIR_NONE</code>.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-default-direction"></a><h3>gtk_widget_get_default_direction ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>    gtk_widget_get_default_direction    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Obtains the current default reading direction. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-default-direction" title="gtk_widget_set_default_direction ()"><code class="function">gtk_widget_set_default_direction()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the current default direction.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-shape-combine-region"></a><h3>gtk_widget_shape_combine_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_shape_combine_region     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<p>
Sets a shape for this widget's GDK window. This allows for
transparent windows etc., see <a href="../gdk3/gdk3-Windows.html#gdk-window-shape-combine-region"><code class="function">gdk_window_shape_combine_region()</code></a>
for more information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>region</code></em> :</span></p></td>
<td>shape to be added, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to remove an existing shape. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-input-shape-combine-region"></a><h3>gtk_widget_input_shape_combine_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_input_shape_combine_region
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<p>
Sets an input shape for this widget's GDK window. This allows for
windows which react to mouse click in a nonrectangular region, see
<a href="../gdk3/gdk3-Windows.html#gdk-window-input-shape-combine-region"><code class="function">gdk_window_input_shape_combine_region()</code></a> for more information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>region</code></em> :</span></p></td>
<td>shape to be added, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to remove an existing shape. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-path"></a><h3>gtk_widget_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_path                     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *path_length</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path_reversed</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_path</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-path" title="gtk_widget_get_path ()"><code class="function">gtk_widget_get_path()</code></a> instead</p>
</div>
<p>
Obtains the full path to <em class="parameter"><code>widget</code></em>. The path is simply the name of a
widget and all its parents in the container hierarchy, separated by
periods. The name of a widget comes from
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-name" title="gtk_widget_get_name ()"><code class="function">gtk_widget_get_name()</code></a>. Paths are used to apply styles to a widget
in gtkrc configuration files. Widget names are the type of the
widget by default (e.g. "GtkButton") or can be set to an
application-specific value with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()"><code class="function">gtk_widget_set_name()</code></a>. By setting
the name of a widget, you allow users or theme authors to apply
styles to that specific widget in their gtkrc
file. <em class="parameter"><code>path_reversed_p</code></em> fills in the path in reverse order,
i.e. starting with <em class="parameter"><code>widget</code></em>'s name instead of starting with the name
of <em class="parameter"><code>widget</code></em>'s outermost ancestor.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>path_length</code></em> :</span></p></td>
<td>location to store length of the path,
or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
<td>location to store allocated path string,
or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>path_reversed</code></em> :</span></p></td>
<td>location to store allocated reverse
path string, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-path"></a><h3>gtk_widget_class_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_class_path               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *path_length</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **path_reversed</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_class_path</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-path" title="gtk_widget_get_path ()"><code class="function">gtk_widget_get_path()</code></a> instead</p>
</div>
<p>
Same as <a class="link" href="gtk3-GtkWidget.html#gtk-widget-path" title="gtk_widget_path ()"><code class="function">gtk_widget_path()</code></a>, but always uses the name of a widget's type,
never uses a custom name set with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()"><code class="function">gtk_widget_set_name()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>path_length</code></em> :</span></p></td>
<td>location to store the length of the
class path, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
<td>location to store the class path as an
allocated string, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>path_reversed</code></em> :</span></p></td>
<td>location to store the reverse
class path as an allocated string, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-composite-name"></a><h3>gtk_widget_get_composite_name ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gtk_widget_get_composite_name       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Obtains the composite name of a widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the composite name of <em class="parameter"><code>widget</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>widget</code></em> is not
a composite child. The string should be freed when it is no
longer needed.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-background-color"></a><h3>gtk_widget_override_background_color ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_override_background_color
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *color</code></em>);</pre>
<p>
Sets the background color to use for a widget.
</p>
<p>
All other style values are left untouched.
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
<td>the state for which to set the background color</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>the color to assign, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect
of previous calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()"><code class="function">gtk_widget_override_background_color()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-color"></a><h3>gtk_widget_override_color ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_override_color           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *color</code></em>);</pre>
<p>
Sets the color to use for a widget.
</p>
<p>
All other style values are left untouched.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
This API is mostly meant as a quick way for applications to
change a widget appearance. If you are developing a widgets
library and intend this change to be themeable, it is better
done by setting meaningful CSS classes and regions in your
widget/container implementation through <a class="link" href="gtk3-GtkStyleContext.html#gtk-style-context-add-class" title="gtk_style_context_add_class ()"><code class="function">gtk_style_context_add_class()</code></a>
and <a class="link" href="gtk3-GtkStyleContext.html#gtk-style-context-add-region" title="gtk_style_context_add_region ()"><code class="function">gtk_style_context_add_region()</code></a>.
</p>
<p>
This way, your widget library can install a <a class="link" href="gtk3-GtkCssProvider.html#GtkCssProvider" title="struct GtkCssProvider"><span class="type">GtkCssProvider</span></a>
with the <a class="link" href="gtk3-GtkStyleProvider.html#GTK-STYLE-PROVIDER-PRIORITY-FALLBACK:CAPS" title="GTK_STYLE_PROVIDER_PRIORITY_FALLBACK"><code class="literal">GTK_STYLE_PROVIDER_PRIORITY_FALLBACK</code></a> priority in order
to provide a default styling for those widgets that need so, and
this theming may fully overridden by the user's theme.
</p>
</div>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
Note that for complex widgets this may bring in undesired
results (such as uniform background color everywhere), in
these cases it is better to fully style such widgets through a
<a class="link" href="gtk3-GtkCssProvider.html#GtkCssProvider" title="struct GtkCssProvider"><span class="type">GtkCssProvider</span></a> with the <a class="link" href="gtk3-GtkStyleProvider.html#GTK-STYLE-PROVIDER-PRIORITY-APPLICATION:CAPS" title="GTK_STYLE_PROVIDER_PRIORITY_APPLICATION"><code class="literal">GTK_STYLE_PROVIDER_PRIORITY_APPLICATION</code></a>
priority.
</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
<td>the state for which to set the color</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>the color to assign, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect
of previous calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-font"></a><h3>gtk_widget_override_font ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_override_font            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../pango/pango-Fonts.html#PangoFontDescription"><span class="type">PangoFontDescription</span></a> *font_desc</code></em>);</pre>
<p>
Sets the font to use for a widget. All other style values are
left untouched. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>font_desc</code></em> :</span></p></td>
<td>the font descriptiong to use, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo
the effect of previous calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()"><code class="function">gtk_widget_override_font()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-symbolic-color"></a><h3>gtk_widget_override_symbolic_color ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_override_symbolic_color  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *color</code></em>);</pre>
<p>
Sets a symbolic color for a widget.
</p>
<p>
All other style values are left untouched.
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> for overriding the foreground
or background color.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>the name of the symbolic color to modify</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>the color to assign (does not need
to be allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous
calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-symbolic-color" title="gtk_widget_override_symbolic_color ()"><code class="function">gtk_widget_override_symbolic_color()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-cursor"></a><h3>gtk_widget_override_cursor ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_override_cursor          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *cursor</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-RGBA-Colors.html#GdkRGBA"><span class="type">GdkRGBA</span></a> *secondary_cursor</code></em>);</pre>
<p>
Sets the cursor color to use in a widget, overriding the
<span class="type">"cursor-color"</span> and <span class="type">"secondary-cursor-color"</span>
style properties. All other style values are left untouched.
See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.
</p>
<p>
Note that the underlying properties have the <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> type,
so the alpha value in <em class="parameter"><code>primary</code></em> and <em class="parameter"><code>secondary</code></em> will be ignored.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cursor</code></em> :</span></p></td>
<td>the color to use for primary cursor (does not need to be
allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous calls to
of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()"><code class="function">gtk_widget_override_cursor()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>secondary_cursor</code></em> :</span></p></td>
<td>the color to use for secondary cursor (does not
need to be allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous
calls to of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()"><code class="function">gtk_widget_override_cursor()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-style"></a><h3>gtk_widget_modify_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_modify_style             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Resource-Files.html#GtkRcStyle" title="GtkRcStyle"><span class="type">GtkRcStyle</span></a> *style</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_modify_style</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> with a custom <a class="link" href="gtk3-GtkStyleProvider.html#GtkStyleProvider" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> instead</p>
</div>
<p>
Modifies style values on the widget.
</p>
<p>
Modifications made using this technique take precedence over
style values set via an RC file, however, they will be overridden
if a style is explicitely set on the widget using <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-style" title="gtk_widget_set_style ()"><code class="function">gtk_widget_set_style()</code></a>.
The <a class="link" href="gtk3-Resource-Files.html#GtkRcStyle" title="GtkRcStyle"><span class="type">GtkRcStyle</span></a> structure is designed so each field can either be
set or unset, so it is possible, using this function, to modify some
style values and leave the others unchanged.
</p>
<p>
Note that modifications made with this function are not cumulative
with previous calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> or with such
functions as <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()"><code class="function">gtk_widget_modify_fg()</code></a>. If you wish to retain
previous values, you must first call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-modifier-style" title="gtk_widget_get_modifier_style ()"><code class="function">gtk_widget_get_modifier_style()</code></a>,
make your modifications to the returned style, then call
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> with that style. On the other hand,
if you first call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>, subsequent calls
to such functions <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()"><code class="function">gtk_widget_modify_fg()</code></a> will have a cumulative
effect with the initial modifications.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>style</code></em> :</span></p></td>
<td>the <a class="link" href="gtk3-Resource-Files.html#GtkRcStyle" title="GtkRcStyle"><span class="type">GtkRcStyle</span></a> holding the style modifications</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-modifier-style"></a><h3>gtk_widget_get_modifier_style ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Resource-Files.html#GtkRcStyle" title="GtkRcStyle"><span class="returnvalue">GtkRcStyle</span></a> *        gtk_widget_get_modifier_style       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_get_modifier_style</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> with a custom <a class="link" href="gtk3-GtkStyleProvider.html#GtkStyleProvider" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> instead</p>
</div>
<p>
Returns the current modifier style for the widget. (As set by
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.) If no style has previously set, a new
<a class="link" href="gtk3-Resource-Files.html#GtkRcStyle" title="GtkRcStyle"><span class="type">GtkRcStyle</span></a> will be created with all values unset, and set as the
modifier style for the widget. If you make changes to this rc
style, you must call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>, passing in the
returned rc style, to make sure that your changes take effect.
</p>
<p>
Caution: passing the style back to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> will
normally end up destroying it, because <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> copies
the passed-in style and sets the copy as the new modifier style,
thus dropping any reference to the old modifier style. Add a reference
to the modifier style if you want to keep it alive.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the modifier style for the widget.
This rc style is owned by the widget. If you want to keep a
pointer to value this around, you must add a refcount using
<a href="../gobject/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-fg"></a><h3>gtk_widget_modify_fg ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_modify_fg                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_modify_fg</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> instead</p>
</div>
<p>
Sets the foreground color for a widget in a particular state.
</p>
<p>
All other style values are left untouched.
See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
<td>the state for which to set the foreground color</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>the color to assign (does not need to be allocated),
or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous calls to
of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()"><code class="function">gtk_widget_modify_fg()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-bg"></a><h3>gtk_widget_modify_bg ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_modify_bg                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_modify_bg</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()"><code class="function">gtk_widget_override_background_color()</code></a> instead</p>
</div>
<p>
Sets the background color for a widget in a particular state.
</p>
<p>
All other style values are left untouched.
See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
Note that "no window" widgets (which have the <code class="literal">GTK_NO_WINDOW</code>
flag set) draw on their parent container's window and thus may
not draw any background themselves. This is the case for e.g.
<a class="link" href="gtk3-GtkLabel.html#GtkLabel" title="struct GtkLabel"><span class="type">GtkLabel</span></a>.
</p>
<p>
To modify the background of such widgets, you have to set the
background color on their parent; if you want to set the background
of a rectangular area around a label, try placing the label in
a <a class="link" href="gtk3-GtkEventBox.html#GtkEventBox" title="struct GtkEventBox"><span class="type">GtkEventBox</span></a> widget and setting the background color on that.
</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
<td>the state for which to set the background color</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>the color to assign (does not need
to be allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous
calls to of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-bg" title="gtk_widget_modify_bg ()"><code class="function">gtk_widget_modify_bg()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-text"></a><h3>gtk_widget_modify_text ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_modify_text              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_modify_text</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> instead</p>
</div>
<p>
Sets the text color for a widget in a particular state.
</p>
<p>
All other style values are left untouched.
The text color is the foreground color used along with the
base color (see <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-base" title="gtk_widget_modify_base ()"><code class="function">gtk_widget_modify_base()</code></a>) for widgets such
as <a class="link" href="gtk3-GtkEntry.html#GtkEntry" title="struct GtkEntry"><span class="type">GtkEntry</span></a> and <a class="link" href="gtk3-GtkTextView.html#GtkTextView" title="struct GtkTextView"><span class="type">GtkTextView</span></a>.
See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
<td>the state for which to set the text color</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>the color to assign (does not need to
be allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous
calls to of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-text" title="gtk_widget_modify_text ()"><code class="function">gtk_widget_modify_text()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-base"></a><h3>gtk_widget_modify_base ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_modify_base              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_modify_base</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()"><code class="function">gtk_widget_override_background_color()</code></a> instead</p>
</div>
<p>
Sets the base color for a widget in a particular state.
All other style values are left untouched. The base color
is the background color used along with the text color
(see <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-text" title="gtk_widget_modify_text ()"><code class="function">gtk_widget_modify_text()</code></a>) for widgets such as <a class="link" href="gtk3-GtkEntry.html#GtkEntry" title="struct GtkEntry"><span class="type">GtkEntry</span></a>
and <a class="link" href="gtk3-GtkTextView.html#GtkTextView" title="struct GtkTextView"><span class="type">GtkTextView</span></a>. See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
Note that "no window" widgets (which have the <code class="literal">GTK_NO_WINDOW</code>
flag set) draw on their parent container's window and thus may
not draw any background themselves. This is the case for e.g.
<a class="link" href="gtk3-GtkLabel.html#GtkLabel" title="struct GtkLabel"><span class="type">GtkLabel</span></a>.
</p>
<p>
To modify the background of such widgets, you have to set the
base color on their parent; if you want to set the background
of a rectangular area around a label, try placing the label in
a <a class="link" href="gtk3-GtkEventBox.html#GtkEventBox" title="struct GtkEventBox"><span class="type">GtkEventBox</span></a> widget and setting the base color on that.
</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
<td>the state for which to set the base color</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>the color to assign (does not need to
be allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous
calls to of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-base" title="gtk_widget_modify_base ()"><code class="function">gtk_widget_modify_base()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-font"></a><h3>gtk_widget_modify_font ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_modify_font              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../pango/pango-Fonts.html#PangoFontDescription"><span class="type">PangoFontDescription</span></a> *font_desc</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_modify_font</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()"><code class="function">gtk_widget_override_font()</code></a> instead</p>
</div>
<p>
Sets the font to use for a widget.
</p>
<p>
All other style values are left untouched.
See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>font_desc</code></em> :</span></p></td>
<td>the font description to use, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
to undo the effect of previous calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-font" title="gtk_widget_modify_font ()"><code class="function">gtk_widget_modify_font()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-cursor"></a><h3>gtk_widget_modify_cursor ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_modify_cursor            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *primary</code></em>,
                                                         <em class="parameter"><code>const <a href="../gdk3/gdk3-Colors.html#GdkColor"><span class="type">GdkColor</span></a> *secondary</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_modify_cursor</code> is deprecated and should not be used in newly-written code. 3.0. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()"><code class="function">gtk_widget_override_cursor()</code></a> instead.</p>
</div>
<p>
Sets the cursor color to use in a widget, overriding the
<span class="type">"cursor-color"</span> and <span class="type">"secondary-cursor-color"</span>
style properties.
</p>
<p>
All other style values are left untouched.
See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>primary</code></em> :</span></p></td>
<td>the color to use for primary cursor (does not need to be
allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous calls to
of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-cursor" title="gtk_widget_modify_cursor ()"><code class="function">gtk_widget_modify_cursor()</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>secondary</code></em> :</span></p></td>
<td>the color to use for secondary cursor (does not need to be
allocated), or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to undo the effect of previous calls to
of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-modify-cursor" title="gtk_widget_modify_cursor ()"><code class="function">gtk_widget_modify_cursor()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-create-pango-context"></a><h3>gtk_widget_create_pango_context ()</h3>
<pre class="programlisting"><a href="../pango/pango-Text-Processing.html#PangoContext"><span class="returnvalue">PangoContext</span></a> *      gtk_widget_create_pango_context     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Creates a new <a href="../pango/pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a> with the appropriate font map,
font description, and base direction for drawing text for
this widget. See also <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-pango-context" title="gtk_widget_get_pango_context ()"><code class="function">gtk_widget_get_pango_context()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the new <a href="../pango/pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-pango-context"></a><h3>gtk_widget_get_pango_context ()</h3>
<pre class="programlisting"><a href="../pango/pango-Text-Processing.html#PangoContext"><span class="returnvalue">PangoContext</span></a> *      gtk_widget_get_pango_context        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets a <a href="../pango/pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a> with the appropriate font map, font description,
and base direction for this widget. Unlike the context returned
by <a class="link" href="gtk3-GtkWidget.html#gtk-widget-create-pango-context" title="gtk_widget_create_pango_context ()"><code class="function">gtk_widget_create_pango_context()</code></a>, this context is owned by
the widget (it can be used until the screen for the widget changes
or the widget is removed from its toplevel), and will be updated to
match any changes to the widget's attributes.
</p>
<p>
If you create and keep a <a href="../pango/pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> using this context, you must
deal with changes to the context by calling <a href="../pango/pango-Layout-Objects.html#pango-layout-context-changed"><code class="function">pango_layout_context_changed()</code></a>
on the layout in response to the <span class="type">"style-updated"</span> and
<span class="type">"direction-changed"</span> signals for the widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the <a href="../pango/pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a> for the widget. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-create-pango-layout"></a><h3>gtk_widget_create_pango_layout ()</h3>
<pre class="programlisting"><a href="../pango/pango-Layout-Objects.html#PangoLayout"><span class="returnvalue">PangoLayout</span></a> *       gtk_widget_create_pango_layout      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>);</pre>
<p>
Creates a new <a href="../pango/pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> with the appropriate font map,
font description, and base direction for drawing text for
this widget.
</p>
<p>
If you keep a <a href="../pango/pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> created in this way around, in order to
notify the layout of changes to the base direction or font of this
widget, you must call <a href="../pango/pango-Layout-Objects.html#pango-layout-context-changed"><code class="function">pango_layout_context_changed()</code></a> in response to
the <span class="type">"style-updated"</span> and <span class="type">"direction-changed"</span> signals
for the widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
<td>text to set on the layout (can be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>)</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the new <a href="../pango/pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-render-icon"></a><h3>gtk_widget_render_icon ()</h3>
<pre class="programlisting"><a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *         gtk_widget_render_icon              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stock_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a> size</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detail</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_render_icon</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-render-icon-pixbuf" title="gtk_widget_render_icon_pixbuf ()"><code class="function">gtk_widget_render_icon_pixbuf()</code></a> instead.</p>
</div>
<p>
A convenience function that uses the theme settings for <em class="parameter"><code>widget</code></em>
to look up <em class="parameter"><code>stock_id</code></em> and render it to a pixbuf. <em class="parameter"><code>stock_id</code></em> should
be a stock icon ID such as <a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OPEN:CAPS" title="GTK_STOCK_OPEN"><span class="type">GTK_STOCK_OPEN</span></a> or <a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OK:CAPS" title="GTK_STOCK_OK"><span class="type">GTK_STOCK_OK</span></a>. <em class="parameter"><code>size</code></em>
should be a size such as <span class="type">GTK_ICON_SIZE_MENU</span>. <em class="parameter"><code>detail</code></em> should be a
string that identifies the widget or code doing the rendering, so
that theme engines can special-case rendering for that widget or
code.
</p>
<p>
The pixels in the returned <a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> are shared with the rest of
the application and should not be modified. The pixbuf should be
freed after use with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>stock_id</code></em> :</span></p></td>
<td>a stock ID</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
<td>a stock size. A size of (GtkIconSize)-1 means
render at the size of the source and don't scale (if there are
multiple source sizes, GTK+ picks one of the available sizes). <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> int]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td>
<td>render detail to pass to theme engine. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a new pixbuf, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
stock ID wasn't known. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-render-icon-pixbuf"></a><h3>gtk_widget_render_icon_pixbuf ()</h3>
<pre class="programlisting"><a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *         gtk_widget_render_icon_pixbuf       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stock_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a> size</code></em>);</pre>
<p>
A convenience function that uses the theme engine and style
settings for <em class="parameter"><code>widget</code></em> to look up <em class="parameter"><code>stock_id</code></em> and render it to
a pixbuf. <em class="parameter"><code>stock_id</code></em> should be a stock icon ID such as
<a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OPEN:CAPS" title="GTK_STOCK_OPEN"><span class="type">GTK_STOCK_OPEN</span></a> or <a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OK:CAPS" title="GTK_STOCK_OK"><span class="type">GTK_STOCK_OK</span></a>. <em class="parameter"><code>size</code></em> should be a size
such as <span class="type">GTK_ICON_SIZE_MENU</span>.
</p>
<p>
The pixels in the returned <a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> are shared with the rest of
the application and should not be modified. The pixbuf should be freed
after use with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>stock_id</code></em> :</span></p></td>
<td>a stock ID</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
<td>a stock size. A size of (GtkIconSize)-1 means
render at the size of the source and don't scale (if there are
multiple source sizes, GTK+ picks one of the available sizes). <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> int]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a new pixbuf, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
stock ID wasn't known. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-pop-composite-child"></a><h3>gtk_widget_pop_composite_child ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_pop_composite_child      (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Cancels the effect of a previous call to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-push-composite-child" title="gtk_widget_push_composite_child ()"><code class="function">gtk_widget_push_composite_child()</code></a>.
</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-push-composite-child"></a><h3>gtk_widget_push_composite_child ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_push_composite_child     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Makes all newly-created widgets as composite children until
the corresponding <a class="link" href="gtk3-GtkWidget.html#gtk-widget-pop-composite-child" title="gtk_widget_pop_composite_child ()"><code class="function">gtk_widget_pop_composite_child()</code></a> call.
</p>
<p>
A composite child is a child that's an implementation detail of the
container it's inside and should not be visible to people using the
container. Composite children aren't treated differently by GTK (but
see <a class="link" href="gtk3-GtkContainer.html#gtk-container-foreach" title="gtk_container_foreach ()"><code class="function">gtk_container_foreach()</code></a> vs. <a class="link" href="gtk3-GtkContainer.html#gtk-container-forall" title="gtk_container_forall ()"><code class="function">gtk_container_forall()</code></a>), but e.g. GUI
builders might want to treat them in a different way.
</p>
<p>
Here is a simple example:
</p>
<div class="informalexample"><pre class="programlisting">
  gtk_widget_push_composite_child ();
  scrolled_window-&gt;hscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, hadjustment);
  gtk_widget_set_composite_name (scrolled_window-&gt;hscrollbar, "hscrollbar");
  gtk_widget_pop_composite_child ();
  gtk_widget_set_parent (scrolled_window-&gt;hscrollbar,
                         GTK_WIDGET (scrolled_window));
  g_object_ref (scrolled_window-&gt;hscrollbar);
</pre></div>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-draw-area"></a><h3>gtk_widget_queue_draw_area ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_queue_draw_area          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>);</pre>
<p>
Convenience function that calls <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-draw-region" title="gtk_widget_queue_draw_region ()"><code class="function">gtk_widget_queue_draw_region()</code></a> on
the region created from the given coordinates.
</p>
<p>
The region here is specified in widget coordinates.
Widget coordinates are a bit odd; for historical reasons, they are
defined as <em class="parameter"><code>widget-&gt;window</code></em> coordinates for widgets that are not
<span class="type">GTK_NO_WINDOW</span> widgets, and are relative to <em class="parameter"><code>widget-&gt;allocation.x</code></em>,
<em class="parameter"><code>widget-&gt;allocation.y</code></em> for widgets that are <span class="type">GTK_NO_WINDOW</span> widgets.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
<td>x coordinate of upper-left corner of rectangle to redraw</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
<td>y coordinate of upper-left corner of rectangle to redraw</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
<td>width of region to draw</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
<td>height of region to draw</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-draw-region"></a><h3>gtk_widget_queue_draw_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_queue_draw_region        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<p>
Invalidates the rectangular area of <em class="parameter"><code>widget</code></em> defined by <em class="parameter"><code>region</code></em> by
calling <a href="../gdk3/gdk3-Windows.html#gdk-window-invalidate-region"><code class="function">gdk_window_invalidate_region()</code></a> on the widget's window and
all its child windows. Once the main loop becomes idle (after the
current batch of events has been processed, roughly), the window
will receive expose events for the union of all regions that have
been invalidated.
</p>
<p>
Normally you would only use this function in widget
implementations. You might also use it to schedule a redraw of a
<a class="link" href="gtk3-GtkDrawingArea.html#GtkDrawingArea" title="struct GtkDrawingArea"><span class="type">GtkDrawingArea</span></a> or some portion thereof.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>region</code></em> :</span></p></td>
<td>region to draw</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-app-paintable"></a><h3>gtk_widget_set_app_paintable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_app_paintable        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> app_paintable</code></em>);</pre>
<p>
Sets whether the application intends to draw on the widget in
an <span class="type">"draw"</span> handler.
</p>
<p>
This is a hint to the widget and does not affect the behavior of
the GTK+ core; many widgets ignore this flag entirely. For widgets
that do pay attention to the flag, such as <a class="link" href="gtk3-GtkEventBox.html#GtkEventBox" title="struct GtkEventBox"><span class="type">GtkEventBox</span></a> and <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>,
the effect is to suppress default themed drawing of the widget's
background. (Children of the widget will still be drawn.) The application
is then entirely responsible for drawing the widget background.
</p>
<p>
Note that the background is still drawn when the widget is mapped.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>app_paintable</code></em> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the application will paint on the widget</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-double-buffered"></a><h3>gtk_widget_set_double_buffered ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_double_buffered      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> double_buffered</code></em>);</pre>
<p>
Widgets are double buffered by default; you can use this function
to turn off the buffering. "Double buffered" simply means that
<a href="../gdk3/gdk3-Windows.html#gdk-window-begin-paint-region"><code class="function">gdk_window_begin_paint_region()</code></a> and <a href="../gdk3/gdk3-Windows.html#gdk-window-end-paint"><code class="function">gdk_window_end_paint()</code></a> are called
automatically around expose events sent to the
widget. <code class="function">gdk_window_begin_paint()</code> diverts all drawing to a widget's
window to an offscreen buffer, and <a href="../gdk3/gdk3-Windows.html#gdk-window-end-paint"><code class="function">gdk_window_end_paint()</code></a> draws the
buffer to the screen. The result is that users see the window
update in one smooth step, and don't see individual graphics
primitives being rendered.
</p>
<p>
In very simple terms, double buffered widgets don't flicker,
so you would only use this function to turn off double buffering
if you had special needs and really knew what you were doing.
</p>
<p>
Note: if you turn off double-buffering, you have to handle
expose events, since even the clearing to the background color or
pixmap will not happen automatically (as it is done in
<code class="function">gdk_window_begin_paint()</code>).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>double_buffered</code></em> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to double-buffer a widget</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-redraw-on-allocate"></a><h3>gtk_widget_set_redraw_on_allocate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_redraw_on_allocate   (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> redraw_on_allocate</code></em>);</pre>
<p>
Sets whether the entire widget is queued for drawing when its size
allocation changes. By default, this setting is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> and
the entire widget is redrawn on every size change. If your widget
leaves the upper left unchanged when made bigger, turning this
setting off will improve performance.
</p>
<p>
Note that for <code class="literal">NO_WINDOW</code> widgets setting this flag to <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> turns
off all allocation on resizing: the widget will not even redraw if
its position changes; this is to allow containers that don't draw
anything to avoid excess invalidations. If you set this flag on a
<code class="literal">NO_WINDOW</code> widget that <span class="emphasis"><em>does</em></span> draw on <em class="parameter"><code>widget-&gt;window</code></em>,
you are responsible for invalidating both the old and new allocation
of the widget when the widget is moved and responsible for invalidating
regions newly when the widget increases size.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>redraw_on_allocate</code></em> :</span></p></td>
<td>if <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the entire widget will be redrawn
when it is allocated to a new size. Otherwise, only the
new portion of the widget will be redrawn.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-composite-name"></a><h3>gtk_widget_set_composite_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_composite_name       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>
Sets a widgets composite name. The widget must be
a composite child of its parent; see <a class="link" href="gtk3-GtkWidget.html#gtk-widget-push-composite-child" title="gtk_widget_push_composite_child ()"><code class="function">gtk_widget_push_composite_child()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>the name to set</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-mnemonic-activate"></a><h3>gtk_widget_mnemonic_activate ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_mnemonic_activate        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> group_cycling</code></em>);</pre>
<p>
Emits the <span class="type">"mnemonic-activate"</span> signal.
</p>
<p>
The default handler for this signal activates the <em class="parameter"><code>widget</code></em> if
<em class="parameter"><code>group_cycling</code></em> is <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, and just grabs the focus if <em class="parameter"><code>group_cycling</code></em>
is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>group_cycling</code></em> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there are other widgets with the same mnemonic</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the signal has been handled</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-install-style-property"></a><h3>gtk_widget_class_install_style_property ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_class_install_style_property
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>);</pre>
<p>
Installs a style property on a widget class. The parser for the
style property is determined by the value type of <em class="parameter"><code>pspec</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
<td>the <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> for the property</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-install-style-property-parser"></a><h3>gtk_widget_class_install_style_property_parser ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_class_install_style_property_parser
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkStyle.html#GtkRcPropertyParser" title="GtkRcPropertyParser ()"><span class="type">GtkRcPropertyParser</span></a> parser</code></em>);</pre>
<p>
Installs a style property on a widget class.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
<td>the <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> for the style property</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
<td>the parser for the style property</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-find-style-property"></a><h3>gtk_widget_class_find_style_property ()</h3>
<pre class="programlisting"><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> *        gtk_widget_class_find_style_property
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);</pre>
<p>
Finds a style property of a widget class by name.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
<td>the name of the style property to find</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> of the style property or
<a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>class</code></em> has no style property with that name. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-list-style-properties"></a><h3>gtk_widget_class_list_style_properties ()</h3>
<pre class="programlisting"><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> **       gtk_widget_class_list_style_properties
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_properties</code></em>);</pre>
<p>
Returns all style properties of a widget class.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_properties</code></em> :</span></p></td>
<td>location to return the number of style properties found</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>an
newly allocated array of <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>*. The array must be
freed with <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_properties][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-region-intersect"></a><h3>gtk_widget_region_intersect ()</h3>
<pre class="programlisting"><a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="returnvalue">cairo_region_t</span></a> *    gtk_widget_region_intersect         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<p>
Computes the intersection of a <em class="parameter"><code>widget</code></em>'s area and <em class="parameter"><code>region</code></em>, returning
the intersection. The result may be empty, use <a href="../cairo/cairo-Regions.html#cairo-region-is-empty"><code class="function">cairo_region_is_empty()</code></a> to
check.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>region</code></em> :</span></p></td>
<td>a <a href="../cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a>, in the same coordinate system as
<em class="parameter"><code>widget-&gt;allocation</code></em>. That is, relative to <em class="parameter"><code>widget-&gt;window</code></em>
for <code class="literal">NO_WINDOW</code> widgets; relative to the parent window
of <em class="parameter"><code>widget-&gt;window</code></em> for widgets with their own window.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A newly allocated region holding the intersection of <em class="parameter"><code>widget</code></em>
and <em class="parameter"><code>region</code></em>. The coordinates of the return value are
relative to <em class="parameter"><code>widget-&gt;window</code></em> for <code class="literal">NO_WINDOW</code> widgets, and
relative to the parent window of <em class="parameter"><code>widget-&gt;window</code></em> for
widgets with their own window.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-send-expose"></a><h3>gtk_widget_send_expose ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gtk_widget_send_expose              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> *event</code></em>);</pre>
<p>
Very rarely-used function. This function is used to emit
an expose event on a widget. This function is not normally used
directly. The only time it is used is when propagating an expose
event to a child <code class="literal">NO_WINDOW</code> widget, and that is normally done
using <a class="link" href="gtk3-GtkContainer.html#gtk-container-propagate-draw" title="gtk_container_propagate_draw ()"><code class="function">gtk_container_propagate_draw()</code></a>.
</p>
<p>
If you want to force an area of a window to be redrawn,
use <a href="../gdk3/gdk3-Windows.html#gdk-window-invalidate-rect"><code class="function">gdk_window_invalidate_rect()</code></a> or <a href="../gdk3/gdk3-Windows.html#gdk-window-invalidate-region"><code class="function">gdk_window_invalidate_region()</code></a>.
To cause the redraw to be done immediately, follow that call
with a call to <a href="../gdk3/gdk3-Windows.html#gdk-window-process-updates"><code class="function">gdk_window_process_updates()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
<td>a expose <a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>return from the event signal emission (<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if
the event was handled)</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-send-focus-change"></a><h3>gtk_widget_send_focus_change ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_send_focus_change        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> *event</code></em>);</pre>
<p>
Sends the focus change <em class="parameter"><code>event</code></em> to <em class="parameter"><code>widget</code></em>
</p>
<p>
This function is not meant to be used by applications. The only time it
should be used is when it is necessary for a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> to assign focus
to a widget that is semantically owned by the first widget even though
it's not a direct child - for instance, a search entry in a floating
window similar to the quick search in <a class="link" href="gtk3-GtkTreeView.html#GtkTreeView" title="struct GtkTreeView"><span class="type">GtkTreeView</span></a>.
</p>
<p>
An example of its usage is:
</p>
<p>
</p>
<div class="informalexample"><pre class="programlisting">
  GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE);

  fevent-&gt;focus_change.type = GDK_FOCUS_CHANGE;
  fevent-&gt;focus_change.in = TRUE;
  fevent-&gt;focus_change.window = gtk_widget_get_window (widget);
  if (fevent-&gt;focus_change.window != NULL)
    g_object_ref (fevent-&gt;focus_change.window);

  gtk_widget_send_focus_change (widget, fevent);

  gdk_event_free (event);
</pre></div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
<td>a <a href="../gdk3/gdk3-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> of type GDK_FOCUS_CHANGE</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the return value from the event signal emission: <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>
if the event was handled, and <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-get"></a><h3>gtk_widget_style_get ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_style_get                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<p>
Gets the values of a multiple style properties of <em class="parameter"><code>widget</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
<td>the name of the first property to get</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-get-property"></a><h3>gtk_widget_style_get_property ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_style_get_property       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
                                                         <em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
<p>
Gets the value of a style property of <em class="parameter"><code>widget</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
<td>the name of a style property</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>location to return the property value</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-get-valist"></a><h3>gtk_widget_style_get_valist ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_style_get_valist         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
<p>
Non-vararg variant of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-style-get" title="gtk_widget_style_get ()"><code class="function">gtk_widget_style_get()</code></a>. Used primarily by language
bindings.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
<td>the name of the first property to get</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
<td>a <span class="type">va_list</span> of pairs of property names and
locations to return the property values, starting with the location
for <em class="parameter"><code>first_property_name</code></em>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-attach"></a><h3>gtk_widget_style_attach ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_style_attach             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_style_attach</code> is deprecated and should not be used in newly-written code. 3.0. This step is unnecessary with <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a>.</p>
</div>
<p>
This function attaches the widget's <a class="link" href="gtk3-GtkStyle.html#GtkStyle" title="struct GtkStyle"><span class="type">GtkStyle</span></a> to the widget's
<a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a>. It is a replacement for
</p>
<p>
</p>
<pre class="programlisting">
widget-&gt;style = gtk_style_attach (widget-&gt;style, widget-&gt;window);
</pre>
<p>
</p>
<p>
and should only ever be called in a derived widget's "realize"
implementation which does not chain up to its parent class'
"realize" implementation, because one of the parent classes
(finally <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>) would attach the style itself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-accessible"></a><h3>gtk_widget_get_accessible ()</h3>
<pre class="programlisting"><a href="../atk/AtkObject.html"><span class="returnvalue">AtkObject</span></a> *         gtk_widget_get_accessible           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the accessible object that describes the widget to an
assistive technology.
</p>
<p>
If no accessibility library is loaded (i.e. no ATK implementation library is
loaded via <code class="envar">GTK_MODULES</code> or via another application library,
such as libgnome), then this <a href="../atk/AtkObject.html"><span class="type">AtkObject</span></a> instance may be a no-op. Likewise,
if no class-specific <a href="../atk/AtkObject.html"><span class="type">AtkObject</span></a> implementation is available for the widget
instance in question, it will inherit an <a href="../atk/AtkObject.html"><span class="type">AtkObject</span></a> implementation from the
first ancestor class for which such an implementation is defined.
</p>
<p>
The documentation of the
<a class="ulink" href="http://library.gnome.org/devel/atk/stable/" target="_top">ATK</a>
library contains more information about accessible objects and their uses.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the <a href="../atk/AtkObject.html"><span class="type">AtkObject</span></a> associated with <em class="parameter"><code>widget</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-child-focus"></a><h3>gtk_widget_child_focus ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_child_focus              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction</code></em>);</pre>
<p>
This function is used by custom widget implementations; if you're
writing an app, you'd use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()"><code class="function">gtk_widget_grab_focus()</code></a> to move the focus
to a particular widget, and <a class="link" href="gtk3-GtkContainer.html#gtk-container-set-focus-chain" title="gtk_container_set_focus_chain ()"><code class="function">gtk_container_set_focus_chain()</code></a> to
change the focus tab order. So you may want to investigate those
functions instead.
</p>
<p>
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()"><code class="function">gtk_widget_child_focus()</code></a> is called by containers as the user moves
around the window using keyboard shortcuts. <em class="parameter"><code>direction</code></em> indicates
what kind of motion is taking place (up, down, left, right, tab
forward, tab backward). <a class="link" href="gtk3-GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()"><code class="function">gtk_widget_child_focus()</code></a> emits the
<span class="type">"focus"</span> signal; widgets override the default handler
for this signal in order to implement appropriate focus behavior.
</p>
<p>
The default ::focus handler for a widget should return <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if
moving in <em class="parameter"><code>direction</code></em> left the focus on a focusable location inside
that widget, and <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if moving in <em class="parameter"><code>direction</code></em> moved the focus
outside the widget. If returning <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, widgets normally
call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()"><code class="function">gtk_widget_grab_focus()</code></a> to place the focus accordingly;
if returning <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, they don't modify the current focus location.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>direction</code></em> :</span></p></td>
<td>direction of focus movement</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if focus ended up inside <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-child-notify"></a><h3>gtk_widget_child_notify ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_child_notify             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *child_property</code></em>);</pre>
<p>
Emits a <span class="type">"child-notify"</span> signal for the
<a class="link" href="gtk3-GtkContainer.html#child-properties" title="Child properties">child property</a> <em class="parameter"><code>child_property</code></em>
on <em class="parameter"><code>widget</code></em>.
</p>
<p>
This is the analogue of <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-notify"><code class="function">g_object_notify()</code></a> for child properties.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>child_property</code></em> :</span></p></td>
<td>the name of a child property installed on the
class of <em class="parameter"><code>widget</code></em>'s parent</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-freeze-child-notify"></a><h3>gtk_widget_freeze_child_notify ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_freeze_child_notify      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Stops emission of <span class="type">"child-notify"</span> signals on <em class="parameter"><code>widget</code></em>. The
signals are queued until <a class="link" href="gtk3-GtkWidget.html#gtk-widget-thaw-child-notify" title="gtk_widget_thaw_child_notify ()"><code class="function">gtk_widget_thaw_child_notify()</code></a> is called
on <em class="parameter"><code>widget</code></em>.
</p>
<p>
This is the analogue of <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-freeze-notify"><code class="function">g_object_freeze_notify()</code></a> for child properties.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-child-visible"></a><h3>gtk_widget_get_child_visible ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_child_visible        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the value set with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-child-visible" title="gtk_widget_set_child_visible ()"><code class="function">gtk_widget_set_child_visible()</code></a>.
If you feel a need to use this function, your code probably
needs reorganization.
</p>
<p>
This function is only useful for container implementations and
never should be called by an application.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is mapped with the parent.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-parent"></a><h3>gtk_widget_get_parent ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *         gtk_widget_get_parent               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the parent container of <em class="parameter"><code>widget</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the parent container of <em class="parameter"><code>widget</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-settings"></a><h3>gtk_widget_get_settings ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkSettings.html#GtkSettings" title="GtkSettings"><span class="returnvalue">GtkSettings</span></a> *       gtk_widget_get_settings             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the settings object holding the settings used for this widget.
</p>
<p>
Note that this function can only be called when the <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
is attached to a toplevel, since the settings object is specific
to a particular <a href="../gdk3/GdkScreen.html"><span class="type">GdkScreen</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the relevant <a class="link" href="gtk3-GtkSettings.html#GtkSettings" title="GtkSettings"><span class="type">GtkSettings</span></a> object. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-clipboard"></a><h3>gtk_widget_get_clipboard ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Clipboards.html#GtkClipboard" title="GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *      gtk_widget_get_clipboard            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Properties-and-Atoms.html#GdkAtom"><span class="type">GdkAtom</span></a> selection</code></em>);</pre>
<p>
Returns the clipboard object for the given selection to
be used with <em class="parameter"><code>widget</code></em>. <em class="parameter"><code>widget</code></em> must have a <a href="../gdk3/GdkDisplay.html"><span class="type">GdkDisplay</span></a>
associated with it, so must be attached to a toplevel
window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>selection</code></em> :</span></p></td>
<td>a <a href="../gdk3/gdk3-Properties-and-Atoms.html#GdkAtom"><span class="type">GdkAtom</span></a> which identifies the clipboard
to use. <a href="../gdk3/gdk3-Selections.html#GDK-SELECTION-CLIPBOARD:CAPS"><code class="literal">GDK_SELECTION_CLIPBOARD</code></a> gives the
default clipboard. Another common value
is <a href="../gdk3/gdk3-Selections.html#GDK-SELECTION-PRIMARY:CAPS"><code class="literal">GDK_SELECTION_PRIMARY</code></a>, which gives
the primary X selection.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the appropriate clipboard object. If no
clipboard already exists, a new one will
be created. Once a clipboard object has
been created, it is persistent for all time. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-display"></a><h3>gtk_widget_get_display ()</h3>
<pre class="programlisting"><a href="../gdk3/GdkDisplay.html"><span class="returnvalue">GdkDisplay</span></a> *        gtk_widget_get_display              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Get the <a href="../gdk3/GdkDisplay.html"><span class="type">GdkDisplay</span></a> for the toplevel window associated with
this widget. This function can only be called after the widget
has been added to a widget hierarchy with a <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> at the top.
</p>
<p>
In general, you should only create display specific
resources when a widget has been realized, and you should
free those resources when the widget is unrealized.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the <a href="../gdk3/GdkDisplay.html"><span class="type">GdkDisplay</span></a> for the toplevel for this widget. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-root-window"></a><h3>gtk_widget_get_root_window ()</h3>
<pre class="programlisting"><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="returnvalue">GdkWindow</span></a> *         gtk_widget_get_root_window          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Get the root window where this widget is located. This function can
only be called after the widget has been added to a widget
hierarchy with <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> at the top.
</p>
<p>
The root window is useful for such purposes as creating a popup
<a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> associated with the window. In general, you should only
create display specific resources when a widget has been realized,
and you should free those resources when the widget is unrealized.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> root window for the toplevel for this widget. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-screen"></a><h3>gtk_widget_get_screen ()</h3>
<pre class="programlisting"><a href="../gdk3/GdkScreen.html"><span class="returnvalue">GdkScreen</span></a> *         gtk_widget_get_screen               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Get the <a href="../gdk3/GdkScreen.html"><span class="type">GdkScreen</span></a> from the toplevel window associated with
this widget. This function can only be called after the widget
has been added to a widget hierarchy with a <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>
at the top.
</p>
<p>
In general, you should only create screen specific
resources when a widget has been realized, and you should
free those resources when the widget is unrealized.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the <a href="../gdk3/GdkScreen.html"><span class="type">GdkScreen</span></a> for the toplevel for this widget. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-screen"></a><h3>gtk_widget_has_screen ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_has_screen               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Checks whether there is a <a href="../gdk3/GdkScreen.html"><span class="type">GdkScreen</span></a> is associated with
this widget. All toplevel widgets have an associated
screen, and all widgets added into a hierarchy with a toplevel
window at the top.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there is a <a href="../gdk3/GdkScreen.html"><span class="type">GdkScreen</span></a> associcated
with the widget.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-size-request"></a><h3>gtk_widget_get_size_request ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_size_request         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *height</code></em>);</pre>
<p>
Gets the size request that was explicitly set for the widget using
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>. A value of -1 stored in <em class="parameter"><code>width</code></em> or
<em class="parameter"><code>height</code></em> indicates that that dimension has not been set explicitly
and the natural requisition of the widget will be used intead. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>. To get the size a widget will
actually request, call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()"><code class="function">gtk_widget_get_preferred_size()</code></a> instead of
this function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
<td>return location for width, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
<td>return location for height, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-child-visible"></a><h3>gtk_widget_set_child_visible ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_child_visible        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> is_visible</code></em>);</pre>
<p>
Sets whether <em class="parameter"><code>widget</code></em> should be mapped along with its when its parent
is mapped and <em class="parameter"><code>widget</code></em> has been shown with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()"><code class="function">gtk_widget_show()</code></a>.
</p>
<p>
The child visibility can be set for widget before it is added to
a container with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-parent" title="gtk_widget_set_parent ()"><code class="function">gtk_widget_set_parent()</code></a>, to avoid mapping
children unnecessary before immediately unmapping them. However
it will be reset to its default state of <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the widget
is removed from a container.
</p>
<p>
Note that changing the child visibility of a widget does not
queue a resize on the widget. Most of the time, the size of
a widget is computed from all visible children, whether or
not they are mapped. If this is not the case, the container
can queue a resize itself.
</p>
<p>
This function is only useful for container implementations and
never should be called by an application.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>is_visible</code></em> :</span></p></td>
<td>if <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, <em class="parameter"><code>widget</code></em> should be mapped along with its parent.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-size-request"></a><h3>gtk_widget_set_size_request ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_size_request         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>);</pre>
<p>
Sets the minimum size of a widget; that is, the widget's size
request will be <em class="parameter"><code>width</code></em> by <em class="parameter"><code>height</code></em>. You can use this function to
force a widget to be either larger or smaller than it normally
would be.
</p>
<p>
In most cases, <a class="link" href="gtk3-GtkWindow.html#gtk-window-set-default-size" title="gtk_window_set_default_size ()"><code class="function">gtk_window_set_default_size()</code></a> is a better choice for
toplevel windows than this function; setting the default size will
still allow users to shrink the window. Setting the size request
will force them to leave the window at least as large as the size
request. When dealing with window sizes,
<a class="link" href="gtk3-GtkWindow.html#gtk-window-set-geometry-hints" title="gtk_window_set_geometry_hints ()"><code class="function">gtk_window_set_geometry_hints()</code></a> can be a useful function as well.
</p>
<p>
Note the inherent danger of setting any fixed size - themes,
translations into other languages, different fonts, and user action
can all change the appropriate size for a given widget. So, it's
basically impossible to hardcode a size that will always be
correct.
</p>
<p>
The size request of a widget is the smallest size a widget can
accept while still functioning well and drawing itself correctly.
However in some strange cases a widget may be allocated less than
its requested size, and in many cases a widget may be allocated more
space than it requested.
</p>
<p>
If the size request in a given direction is -1 (unset), then
the "natural" size request of the widget will be used instead.
</p>
<p>
Widgets can't actually be allocated a size less than 1 by 1, but
you can pass 0,0 to this function to mean "as small as possible."
</p>
<p>
The size request set here does not include any margin from the
<a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> properties margin-left, margin-right, margin-top, and
margin-bottom, but it does include pretty much all other padding
or border properties set by any subclass of <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
<td>width <em class="parameter"><code>widget</code></em> should request, or -1 to unset</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
<td>height <em class="parameter"><code>widget</code></em> should request, or -1 to unset</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-thaw-child-notify"></a><h3>gtk_widget_thaw_child_notify ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_thaw_child_notify        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Reverts the effect of a previous call to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-freeze-child-notify" title="gtk_widget_freeze_child_notify ()"><code class="function">gtk_widget_freeze_child_notify()</code></a>.
This causes all queued <span class="type">"child-notify"</span> signals on <em class="parameter"><code>widget</code></em> to be
emitted.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-no-show-all"></a><h3>gtk_widget_set_no_show_all ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_no_show_all          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> no_show_all</code></em>);</pre>
<p>
Sets the <span class="type">"no-show-all"</span> property, which determines whether
calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()"><code class="function">gtk_widget_show_all()</code></a> will affect this widget.
</p>
<p>
This is mostly for use in constructing widget hierarchies with externally
controlled visibility, see <a class="link" href="gtk3-GtkUIManager.html#GtkUIManager" title="struct GtkUIManager"><span class="type">GtkUIManager</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>no_show_all</code></em> :</span></p></td>
<td>the new value for the "no-show-all" property</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-no-show-all"></a><h3>gtk_widget_get_no_show_all ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_no_show_all          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the current value of the <span class="type">"no-show-all"</span> property,
which determines whether calls to <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()"><code class="function">gtk_widget_show_all()</code></a>
will affect this widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the current value of the "no-show-all" property.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-list-mnemonic-labels"></a><h3>gtk_widget_list_mnemonic_labels ()</h3>
<pre class="programlisting"><a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gtk_widget_list_mnemonic_labels     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns a newly allocated list of the widgets, normally labels, for
which this widget is the target of a mnemonic (see for example,
<a class="link" href="gtk3-GtkLabel.html#gtk-label-set-mnemonic-widget" title="gtk_label_set_mnemonic_widget ()"><code class="function">gtk_label_set_mnemonic_widget()</code></a>).
</p>
<p>
The widgets in the list are not individually referenced. If you
want to iterate through the list and perform actions involving
callbacks that might destroy the widgets, you
<span class="emphasis"><em>must</em></span> call <code class="literal">g_list_foreach (result,
(GFunc)g_object_ref, NULL)</code> first, and then unref all the
widgets afterwards.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the list of
mnemonic labels; free this list
with <a href="../glib/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a> when you are done with it. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GtkWidget][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-mnemonic-label"></a><h3>gtk_widget_add_mnemonic_label ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_add_mnemonic_label       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *label</code></em>);</pre>
<p>
Adds a widget to the list of mnemonic labels for
this widget. (See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-list-mnemonic-labels" title="gtk_widget_list_mnemonic_labels ()"><code class="function">gtk_widget_list_mnemonic_labels()</code></a>). Note the
list of mnemonic labels for the widget is cleared when the
widget is destroyed, so the caller must make sure to update
its internal state at this point as well, by using a connection
to the <span class="type">"destroy"</span> signal or a weak notifier.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> that acts as a mnemonic label for <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-remove-mnemonic-label"></a><h3>gtk_widget_remove_mnemonic_label ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_remove_mnemonic_label    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *label</code></em>);</pre>
<p>
Removes a widget from the list of mnemonic labels for
this widget. (See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-list-mnemonic-labels" title="gtk_widget_list_mnemonic_labels ()"><code class="function">gtk_widget_list_mnemonic_labels()</code></a>). The widget
must have previously been added to the list with
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-mnemonic-label" title="gtk_widget_add_mnemonic_label ()"><code class="function">gtk_widget_add_mnemonic_label()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> that was previously set as a mnemnic label for
<em class="parameter"><code>widget</code></em> with <a class="link" href="gtk3-GtkWidget.html#gtk-widget-add-mnemonic-label" title="gtk_widget_add_mnemonic_label ()"><code class="function">gtk_widget_add_mnemonic_label()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-composited"></a><h3>gtk_widget_is_composited ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_is_composited            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Whether <em class="parameter"><code>widget</code></em> can rely on having its alpha channel
drawn correctly. On X11 this function returns whether a
compositing manager is running for <em class="parameter"><code>widget</code></em>'s screen.
</p>
<p>
Please note that the semantics of this call will change
in the future if used on a widget that has a composited
window in its hierarchy (as set by <a href="../gdk3/gdk3-Windows.html#gdk-window-set-composited"><code class="function">gdk_window_set_composited()</code></a>).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget can rely on its alpha
channel being drawn correctly.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-error-bell"></a><h3>gtk_widget_error_bell ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_error_bell               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Notifies the user about an input-related error on this widget.
If the <span class="type">"gtk-error-bell"</span> setting is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it calls
<a href="../gdk3/gdk3-Windows.html#gdk-window-beep"><code class="function">gdk_window_beep()</code></a>, otherwise it does nothing.
</p>
<p>
Note that the effect of <a href="../gdk3/gdk3-Windows.html#gdk-window-beep"><code class="function">gdk_window_beep()</code></a> can be configured in many
ways, depending on the windowing backend and the desktop environment
or window manager that is used.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-keynav-failed"></a><h3>gtk_widget_keynav_failed ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_keynav_failed            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction</code></em>);</pre>
<p>
This function should be called whenever keyboard navigation within
a single widget hits a boundary. The function emits the
<span class="type">"keynav-failed"</span> signal on the widget and its return
value should be interpreted in a way similar to the return value of
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()"><code class="function">gtk_widget_child_focus()</code></a>:
</p>
<p>
When <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is returned, stay in the widget, the failed keyboard
navigation is Ok and/or there is nowhere we can/should move the
focus to.
</p>
<p>
When <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned, the caller should continue with keyboard
navigation outside the widget, e.g. by calling
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()"><code class="function">gtk_widget_child_focus()</code></a> on the widget's toplevel.
</p>
<p>
The default ::keynav-failed handler returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for
<code class="literal">GTK_DIR_TAB_FORWARD</code> and <code class="literal">GTK_DIR_TAB_BACKWARD</code>. For the other
values of <a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a>, it looks at the
<span class="type">"gtk-keynav-cursor-only"</span> setting and returns <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
if the setting is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. This way the entire user interface
becomes cursor-navigatable on input devices such as mobile phones
which only have cursor keys but no tab key.
</p>
<p>
Whenever the default handler returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it also calls
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-error-bell" title="gtk_widget_error_bell ()"><code class="function">gtk_widget_error_bell()</code></a> to notify the user of the failed keyboard
navigation.
</p>
<p>
A use case for providing an own implementation of ::keynav-failed
(either by connecting to it or by overriding it) would be a row of
<a class="link" href="gtk3-GtkEntry.html#GtkEntry" title="struct GtkEntry"><span class="type">GtkEntry</span></a> widgets where the user should be able to navigate the
entire row with the cursor keys, as e.g. known from user interfaces
that require entering license keys.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>direction</code></em> :</span></p></td>
<td>direction of focus movement</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if stopping keyboard navigation is fine, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
if the emitting widget should try to handle the keyboard
navigation attempt in its parent container(s).</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-tooltip-markup"></a><h3>gtk_widget_get_tooltip_markup ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gtk_widget_get_tooltip_markup       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the contents of the tooltip for <em class="parameter"><code>widget</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the tooltip text, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. You should free the
returned string with <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-tooltip-markup"></a><h3>gtk_widget_set_tooltip_markup ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_tooltip_markup       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *markup</code></em>);</pre>
<p>
Sets <em class="parameter"><code>markup</code></em> as the contents of the tooltip, which is marked up with
 the <a href="../pango/PangoMarkupFormat.html">Pango text markup language</a>.
</p>
<p>
This function will take care of setting <span class="type">"has-tooltip"</span> to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>
and of the default handler for the <span class="type">"query-tooltip"</span> signal.
</p>
<p>
See also the <span class="type">"tooltip-markup"</span> property and
<a class="link" href="gtk3-GtkTooltip.html#gtk-tooltip-set-markup" title="gtk_tooltip_set_markup ()"><code class="function">gtk_tooltip_set_markup()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
<td>the contents of the tooltip for <em class="parameter"><code>widget</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-tooltip-text"></a><h3>gtk_widget_get_tooltip_text ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gtk_widget_get_tooltip_text         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the contents of the tooltip for <em class="parameter"><code>widget</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the tooltip text, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. You should free the
returned string with <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-tooltip-text"></a><h3>gtk_widget_set_tooltip_text ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_tooltip_text         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>);</pre>
<p>
Sets <em class="parameter"><code>text</code></em> as the contents of the tooltip. This function will take
care of setting <span class="type">"has-tooltip"</span> to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> and of the default
handler for the <span class="type">"query-tooltip"</span> signal.
</p>
<p>
See also the <span class="type">"tooltip-text"</span> property and <a class="link" href="gtk3-GtkTooltip.html#gtk-tooltip-set-text" title="gtk_tooltip_set_text ()"><code class="function">gtk_tooltip_set_text()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
<td>the contents of the tooltip for <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-tooltip-window"></a><h3>gtk_widget_get_tooltip_window ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="returnvalue">GtkWindow</span></a> *         gtk_widget_get_tooltip_window       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> of the current tooltip. This can be the
GtkWindow created by default, or the custom tooltip window set
using <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-tooltip-window" title="gtk_widget_set_tooltip_window ()"><code class="function">gtk_widget_set_tooltip_window()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> of the current tooltip. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-tooltip-window"></a><h3>gtk_widget_set_tooltip_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_tooltip_window       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> *custom_window</code></em>);</pre>
<p>
Replaces the default, usually yellow, window used for displaying
tooltips with <em class="parameter"><code>custom_window</code></em>. GTK+ will take care of showing and
hiding <em class="parameter"><code>custom_window</code></em> at the right moment, to behave likewise as
the default tooltip window. If <em class="parameter"><code>custom_window</code></em> is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the default
tooltip window will be used.
</p>
<p>
If the custom window should have the default theming it needs to
have the name "gtk-tooltip", see <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()"><code class="function">gtk_widget_set_name()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>custom_window</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-has-tooltip"></a><h3>gtk_widget_get_has_tooltip ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_has_tooltip          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the current value of the has-tooltip property.  See
<span class="type">"has-tooltip"</span> for more information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>current value of has-tooltip on <em class="parameter"><code>widget</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-has-tooltip"></a><h3>gtk_widget_set_has_tooltip ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_has_tooltip          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> has_tooltip</code></em>);</pre>
<p>
Sets the has-tooltip property on <em class="parameter"><code>widget</code></em> to <em class="parameter"><code>has_tooltip</code></em>.  See
<span class="type">"has-tooltip"</span> for more information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>has_tooltip</code></em> :</span></p></td>
<td>whether or not <em class="parameter"><code>widget</code></em> has a tooltip.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-trigger-tooltip-query"></a><h3>gtk_widget_trigger_tooltip_query ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_trigger_tooltip_query    (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Triggers a tooltip query on the display where the toplevel of <em class="parameter"><code>widget</code></em>
is located. See <a class="link" href="gtk3-GtkTooltip.html#gtk-tooltip-trigger-tooltip-query" title="gtk_tooltip_trigger_tooltip_query ()"><code class="function">gtk_tooltip_trigger_tooltip_query()</code></a> for more
information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-window"></a><h3>gtk_widget_get_window ()</h3>
<pre class="programlisting"><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="returnvalue">GdkWindow</span></a> *         gtk_widget_get_window               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the widget's window if it is realized, <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>widget</code></em>'s window. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.14</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-cairo-should-draw-window"></a><h3>gtk_cairo_should_draw_window ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_cairo_should_draw_window        (<em class="parameter"><code><a href="../cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *window</code></em>);</pre>
<p>
This function is supposed to be called in <span class="type">"draw"</span>
implementations for widgets that support multiple windows.
<em class="parameter"><code>cr</code></em> must be untransformed from invoking of the draw function.
This function will return <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the contents of the given
<em class="parameter"><code>window</code></em> are supposed to be drawn and <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise. Note
that when the drawing was not initiated by the windowing
system this function will return <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for all windows, so
you need to draw the bottommost window first. Also, do not
use "else if" statements to check which window should be drawn.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a cairo context</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
<td>the window to check</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>window</code></em> should be drawn</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-cairo-transform-to-window"></a><h3>gtk_cairo_transform_to_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_cairo_transform_to_window       (<em class="parameter"><code><a href="../cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *window</code></em>);</pre>
<p>
Transforms the given cairo context <em class="parameter"><code>cr</code></em> that from <em class="parameter"><code>widget</code></em>-relative
coordinates to <em class="parameter"><code>window</code></em>-relative coordinates.
If the <em class="parameter"><code>widget</code></em>'s window is not an ancestor of <em class="parameter"><code>window</code></em>, no
modification will be applied.
</p>
<p>
This is the inverse to the transformation GTK applies when
preparing an expose event to be emitted with the <span class="type">"draw"</span>
signal. It is intended to help porting multiwindow widgets from
GTK+ 2 to the rendering architecture of GTK+ 3.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>the cairo context to transform</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget the context is currently centered for</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
<td>the window to transform the context to</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocated-width"></a><h3>gtk_widget_get_allocated_width ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 gtk_widget_get_allocated_width      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the width that has currently been allocated to <em class="parameter"><code>widget</code></em>.
This function is intended to be used when implementing handlers
for the <span class="type">"draw"</span> function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget to query</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the width of the <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocated-height"></a><h3>gtk_widget_get_allocated_height ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 gtk_widget_get_allocated_height     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the height that has currently been allocated to <em class="parameter"><code>widget</code></em>.
This function is intended to be used when implementing handlers
for the <span class="type">"draw"</span> function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget to query</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the height of the <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocation"></a><h3>gtk_widget_get_allocation ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_allocation           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);</pre>
<p>
Retrieves the widget's allocation.
</p>
<p>
Note, when implementing a <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>: a widget's allocation will
be its "adjusted" allocation, that is, the widget's parent
container typically calls <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> with an
allocation, and that allocation is then adjusted (to handle margin
and alignment for example) before assignment to the widget.
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-allocation" title="gtk_widget_get_allocation ()"><code class="function">gtk_widget_get_allocation()</code></a> returns the adjusted allocation that
was actually assigned to the widget. The adjusted allocation is
guaranteed to be completely contained within the
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> allocation, however. So a <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>
is guaranteed that its children stay inside the assigned bounds,
but not that they have exactly the bounds the container assigned.
There is no way to get the original allocation assigned by
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a>, since it isn't stored; if a container
implementation needs that information it will have to track it itself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allocation</code></em> :</span></p></td>
<td>a pointer to a <a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> to copy to. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-allocation"></a><h3>gtk_widget_set_allocation ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_allocation           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);</pre>
<p>
Sets the widget's allocation.  This should not be used
directly, but from within a widget's size_allocate method.
</p>
<p>
The allocation set should be the "adjusted" or actual
allocation. If you're implementing a <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>, you want to use
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> instead of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-allocation" title="gtk_widget_set_allocation ()"><code class="function">gtk_widget_set_allocation()</code></a>.
The GtkWidgetClass::adjust_size_allocation virtual method adjusts the
allocation inside <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> to create an adjusted
allocation.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allocation</code></em> :</span></p></td>
<td>a pointer to a <a class="link" href="gtk3-GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> to copy from</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-app-paintable"></a><h3>gtk_widget_get_app_paintable ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_app_paintable        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether the application intends to draw on the widget in
an <span class="type">"draw"</span> handler.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-app-paintable" title="gtk_widget_set_app_paintable ()"><code class="function">gtk_widget_set_app_paintable()</code></a>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is app paintable</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-can-default"></a><h3>gtk_widget_get_can_default ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_can_default          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> can be a default widget. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-can-default" title="gtk_widget_set_can_default ()"><code class="function">gtk_widget_set_can_default()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> can be a default widget, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-can-default"></a><h3>gtk_widget_set_can_default ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_can_default          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> can_default</code></em>);</pre>
<p>
Specifies whether <em class="parameter"><code>widget</code></em> can be a default widget. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-grab-default" title="gtk_widget_grab_default ()"><code class="function">gtk_widget_grab_default()</code></a> for details about the meaning of
"default".
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>can_default</code></em> :</span></p></td>
<td>whether or not <em class="parameter"><code>widget</code></em> can be a default widget.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-can-focus"></a><h3>gtk_widget_get_can_focus ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_can_focus            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> can own the input focus. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-can-focus" title="gtk_widget_set_can_focus ()"><code class="function">gtk_widget_set_can_focus()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> can own the input focus, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-can-focus"></a><h3>gtk_widget_set_can_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_can_focus            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> can_focus</code></em>);</pre>
<p>
Specifies whether <em class="parameter"><code>widget</code></em> can own the input focus. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()"><code class="function">gtk_widget_grab_focus()</code></a> for actually setting the input focus on a
widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>can_focus</code></em> :</span></p></td>
<td>whether or not <em class="parameter"><code>widget</code></em> can own the input focus.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-double-buffered"></a><h3>gtk_widget_get_double_buffered ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_double_buffered      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether the widget is double buffered.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-double-buffered" title="gtk_widget_set_double_buffered ()"><code class="function">gtk_widget_set_double_buffered()</code></a>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is double buffered</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-has-window"></a><h3>gtk_widget_get_has_window ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_has_window           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> has a <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> of its own. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-has-window" title="gtk_widget_set_has_window ()"><code class="function">gtk_widget_set_has_window()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> has a window, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-has-window"></a><h3>gtk_widget_set_has_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_has_window           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> has_window</code></em>);</pre>
<p>
Specifies whether <em class="parameter"><code>widget</code></em> has a <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> of its own. Note that
all realized widgets have a non-<a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> "window" pointer
(<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-window" title="gtk_widget_get_window ()"><code class="function">gtk_widget_get_window()</code></a> never returns a <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> window when a widget
is realized), but for many of them it's actually the <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> of
one of its parent widgets. Widgets that do not create a <code class="literal">window</code> for
themselves in <span class="type">"realize"</span> must announce this by
calling this function with <em class="parameter"><code>has_window</code></em> = <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
</p>
<p>
This function should only be called by widget implementations,
and they should call it in their <code class="function">init()</code> function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>has_window</code></em> :</span></p></td>
<td>whether or not <em class="parameter"><code>widget</code></em> has a window.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-sensitive"></a><h3>gtk_widget_get_sensitive ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_sensitive            (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the widget's sensitivity (in the sense of returning
the value that has been set using <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-sensitive" title="gtk_widget_set_sensitive ()"><code class="function">gtk_widget_set_sensitive()</code></a>).
</p>
<p>
The effective sensitivity of a widget is however determined by both its
own and its parent widget's sensitivity. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-sensitive" title="gtk_widget_is_sensitive ()"><code class="function">gtk_widget_is_sensitive()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is sensitive</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-sensitive"></a><h3>gtk_widget_is_sensitive ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_is_sensitive             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the widget's effective sensitivity, which means
it is sensitive itself and also its parent widget is sensitive
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is effectively sensitive</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-state"></a><h3>gtk_widget_get_state ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateType" title="enum GtkStateType"><span class="returnvalue">GtkStateType</span></a>        gtk_widget_get_state                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_get_state</code> is deprecated and should not be used in newly-written code. 3.0. Use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()"><code class="function">gtk_widget_get_state_flags()</code></a> instead.</p>
</div>
<p>
Returns the widget's state. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-state" title="gtk_widget_set_state ()"><code class="function">gtk_widget_set_state()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the state of <em class="parameter"><code>widget</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-visible"></a><h3>gtk_widget_get_visible ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_visible              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether the widget is visible. Note that this doesn't
take into account whether the widget's parent is also visible
or the widget is obscured in any way.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-visible" title="gtk_widget_set_visible ()"><code class="function">gtk_widget_set_visible()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is visible</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-visible"></a><h3>gtk_widget_set_visible ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_visible              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> visible</code></em>);</pre>
<p>
Sets the visibility state of <em class="parameter"><code>widget</code></em>. Note that setting this to
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> doesn't mean the widget is actually viewable, see
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-visible" title="gtk_widget_get_visible ()"><code class="function">gtk_widget_get_visible()</code></a>.
</p>
<p>
This function simply calls <a class="link" href="gtk3-GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()"><code class="function">gtk_widget_show()</code></a> or <a class="link" href="gtk3-GtkWidget.html#gtk-widget-hide" title="gtk_widget_hide ()"><code class="function">gtk_widget_hide()</code></a>
but is nicer to use when the visibility of the widget depends on
some condition.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
<td>whether the widget should be shown or not</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-state-flags"></a><h3>gtk_widget_set_state_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_state_flags          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> clear</code></em>);</pre>
<p>
This function is for use in widget implementations. Turns on flag
values in the current widget state (insensitive, prelighted, etc.).
</p>
<p>
It is worth mentioning that any other state than <a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-INSENSITIVE:CAPS"><code class="literal">GTK_STATE_FLAG_INSENSITIVE</code></a>,
will be propagated down to all non-internal children if <em class="parameter"><code>widget</code></em> is a
<a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>, while <a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-INSENSITIVE:CAPS"><code class="literal">GTK_STATE_FLAG_INSENSITIVE</code></a> itself will be propagated
down to all <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a> children by different means than turning on the
state flag down the hierarchy, both <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()"><code class="function">gtk_widget_get_state_flags()</code></a> and
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-sensitive" title="gtk_widget_is_sensitive ()"><code class="function">gtk_widget_is_sensitive()</code></a> will make use of these.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>State flags to turn on</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>clear</code></em> :</span></p></td>
<td>Whether to clear state before turning on <em class="parameter"><code>flags</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unset-state-flags"></a><h3>gtk_widget_unset_state_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_unset_state_flags        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> flags</code></em>);</pre>
<p>
This function is for use in widget implementations. Turns off flag
values for the current widget state (insensitive, prelighted, etc.).
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-state-flags" title="gtk_widget_set_state_flags ()"><code class="function">gtk_widget_set_state_flags()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>State flags to turn off</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-state-flags"></a><h3>gtk_widget_get_state_flags ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="returnvalue">GtkStateFlags</span></a>       gtk_widget_get_state_flags          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the widget state as a flag set. It is worth mentioning
that the effective <a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-INSENSITIVE:CAPS"><code class="literal">GTK_STATE_FLAG_INSENSITIVE</code></a> state will be
returned, that is, also based on parent insensitivity, even if
<em class="parameter"><code>widget</code></em> itself is sensitive.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The state flags for widget</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-default"></a><h3>gtk_widget_has_default ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_has_default              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> is the current default widget within its
toplevel. See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-can-default" title="gtk_widget_set_can_default ()"><code class="function">gtk_widget_set_can_default()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> is the current default widget within
its toplevel, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-focus"></a><h3>gtk_widget_has_focus ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_has_focus                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines if the widget has the global input focus. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-is-focus" title="gtk_widget_is_focus ()"><code class="function">gtk_widget_is_focus()</code></a> for the difference between having the global
input focus, and only having the focus within a toplevel.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget has the global input focus.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-grab"></a><h3>gtk_widget_has_grab ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_has_grab                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether the widget is currently grabbing events, so it
is the only widget receiving input events (keyboard and mouse).
</p>
<p>
See also <a class="link" href="gtk3-General.html#gtk-grab-add" title="gtk_grab_add ()"><code class="function">gtk_grab_add()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is in the grab_widgets stack</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-rc-style"></a><h3>gtk_widget_has_rc_style ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_has_rc_style             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_has_rc_style</code> has been deprecated since version 3.0 and should not be used in newly-written code. Use <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>
Determines if the widget style has been looked up through the rc mechanism.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget has been looked up through the rc
mechanism, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-drawable"></a><h3>gtk_widget_is_drawable ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_is_drawable              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> can be drawn to. A widget can be drawn
to if it is mapped and visible.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> is drawable, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-toplevel"></a><h3>gtk_widget_is_toplevel ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_is_toplevel              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> is a toplevel widget.
</p>
<p>
Currently only <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a> and <a class="link" href="gtk3-GtkInvisible.html#GtkInvisible" title="struct GtkInvisible"><span class="type">GtkInvisible</span></a> (and out-of-process
<a href="gtk3-GtkPlug.html#GtkPlug"><span class="type">GtkPlugs</span></a>) are toplevel widgets. Toplevel widgets have no parent
widget.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> is a toplevel, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-window"></a><h3>gtk_widget_set_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_window               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *window</code></em>);</pre>
<p>
Sets a widget's window. This function should only be used in a
widget's <span class="type">"realize"</span> implementation. The <code class="literal">window</code> passed is
usually either new window created with <a href="../gdk3/gdk3-Windows.html#gdk-window-new"><code class="function">gdk_window_new()</code></a>, or the
window of its parent widget as returned by
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-parent-window" title="gtk_widget_get_parent_window ()"><code class="function">gtk_widget_get_parent_window()</code></a>.
</p>
<p>
Widgets must indicate whether they will create their own <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a>
by calling <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-has-window" title="gtk_widget_set_has_window ()"><code class="function">gtk_widget_set_has_window()</code></a>. This is usually done in the
widget's <code class="function">init()</code> function.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>This function does not add any reference to <em class="parameter"><code>window</code></em>.</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
<td>a <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-receives-default"></a><h3>gtk_widget_set_receives_default ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_receives_default     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> receives_default</code></em>);</pre>
<p>
Specifies whether <em class="parameter"><code>widget</code></em> will be treated as the default widget
within its toplevel when it has the focus, even if another widget
is the default.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-grab-default" title="gtk_widget_grab_default ()"><code class="function">gtk_widget_grab_default()</code></a> for details about the meaning of
"default".
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>receives_default</code></em> :</span></p></td>
<td>whether or not <em class="parameter"><code>widget</code></em> can be a default widget.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-receives-default"></a><h3>gtk_widget_get_receives_default ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_receives_default     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> is alyways treated as default widget
withing its toplevel when it has the focus, even if another widget
is the default.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-receives-default" title="gtk_widget_set_receives_default ()"><code class="function">gtk_widget_set_receives_default()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> acts as default widget when focussed,
<a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-support-multidevice"></a><h3>gtk_widget_set_support_multidevice ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_support_multidevice  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> support_multidevice</code></em>);</pre>
<p>
Enables or disables multiple pointer awareness. If this setting is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
<em class="parameter"><code>widget</code></em> will start receiving multiple, per device enter/leave events. Note
that if custom <a href="../gdk3/gdk3-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a>s are created in <span class="type">"realize"</span>,
<a href="../gdk3/gdk3-Windows.html#gdk-window-set-support-multidevice"><code class="function">gdk_window_set_support_multidevice()</code></a> will have to be called manually on them.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>support_multidevice</code></em> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to support input from multiple devices.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-support-multidevice"></a><h3>gtk_widget_get_support_multidevice ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_support_multidevice  (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> is multiple pointer aware. See
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-support-multidevice" title="gtk_widget_set_support_multidevice ()"><code class="function">gtk_widget_set_support_multidevice()</code></a> for more information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> is multidevice aware.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-realized"></a><h3>gtk_widget_set_realized ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_realized             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> realized</code></em>);</pre>
<p>
Marks the widget as being realized.
</p>
<p>
This function should only ever be called in a derived widget's
"realize" or "unrealize" implementation.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>realized</code></em> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to mark the widget as realized</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-realized"></a><h3>gtk_widget_get_realized ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_realized             (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Determines whether <em class="parameter"><code>widget</code></em> is realized.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>widget</code></em> is realized, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-mapped"></a><h3>gtk_widget_set_mapped ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_mapped               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mapped</code></em>);</pre>
<p>
Marks the widget as being realized.
</p>
<p>
This function should only ever be called in a derived widget's
"map" or "unmap" implementation.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>mapped</code></em> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to mark the widget as mapped</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-mapped"></a><h3>gtk_widget_get_mapped ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_mapped               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Whether the widget is mapped.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget is mapped, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-requisition"></a><h3>gtk_widget_get_requisition ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_requisition          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_widget_get_requisition</code> has been deprecated since version 3.0 and should not be used in newly-written code. The <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> cache on the widget was
removed, If you need to cache sizes across requests and allocations,
add an explicit cache to the widget in question instead.</p>
</div>
<p>
Retrieves the widget's requisition.
</p>
<p>
This function should only be used by widget implementations in
order to figure whether the widget's requisition has actually
changed after some internal state change (so that they can call
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a> instead of <a class="link" href="gtk3-GtkWidget.html#gtk-widget-queue-draw" title="gtk_widget_queue_draw ()"><code class="function">gtk_widget_queue_draw()</code></a>).
</p>
<p>
Normally, <a class="link" href="gtk3-GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> should be used.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>requisition</code></em> :</span></p></td>
<td>a pointer to a <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> to copy to. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-device-is-shadowed"></a><h3>gtk_widget_device_is_shadowed ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_device_is_shadowed       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a> *device</code></em>);</pre>
<p>
Returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>device</code></em> has been shadowed by a GTK+
device grab on another widget, so it would stop sending
events to <em class="parameter"><code>widget</code></em>. This may be used in the
<span class="type">"grab-notify"</span> signal to check for specific
devices. See <a class="link" href="gtk3-General.html#gtk-device-grab-add" title="gtk_device_grab_add ()"><code class="function">gtk_device_grab_add()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td>
<td>a <a href="../gdk3/GdkDevice.html"><span class="type">GdkDevice</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there is an ongoing grab on <em class="parameter"><code>device</code></em>
by another <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> than <em class="parameter"><code>widget</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-path"></a><h3>gtk_widget_get_path ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="returnvalue">GtkWidgetPath</span></a> *     gtk_widget_get_path                 (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the <a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="type">GtkWidgetPath</span></a> representing <em class="parameter"><code>widget</code></em>, if the widget
is not connected to a toplevel widget, a partial path will be
created.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The <a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="type">GtkWidgetPath</span></a> representing <em class="parameter"><code>widget</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-style-context"></a><h3>gtk_widget_get_style_context ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="returnvalue">GtkStyleContext</span></a> *   gtk_widget_get_style_context        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Returns the style context associated to <em class="parameter"><code>widget</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkStyleContext.html#GtkStyleContext" title="struct GtkStyleContext"><span class="type">GtkStyleContext</span></a>. This memory is owned by <em class="parameter"><code>widget</code></em> and
must not be freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-reset-style"></a><h3>gtk_widget_reset_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_reset_style              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Updates the style context of <em class="parameter"><code>widget</code></em> and all descendents
by updating its widget path. <a class="link" href="gtk3-GtkContainer.html#GtkContainer" title="struct GtkContainer"><span class="type">GtkContainer</span></a>s may want
to use this on a child when reordering it in a way that a different
style might apply to it. See also <a class="link" href="gtk3-GtkContainer.html#gtk-container-get-path-for-child" title="gtk_container_get_path_for_child ()"><code class="function">gtk_container_get_path_for_child()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-requisition-new"></a><h3>gtk_requisition_new ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *    gtk_requisition_new                 (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Allocates a new <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> structure and initializes its elements to zero.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a new empty <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a>. The newly allocated <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> should
be freed with <a class="link" href="gtk3-GtkWidget.html#gtk-requisition-free" title="gtk_requisition_free ()"><code class="function">gtk_requisition_free()</code></a>.</td>
</tr></tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-requisition-copy"></a><h3>gtk_requisition_copy ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *    gtk_requisition_copy                (<em class="parameter"><code>const <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<p>
Copies a <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>requisition</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a copy of <em class="parameter"><code>requisition</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-requisition-free"></a><h3>gtk_requisition_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_requisition_free                (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<p>
Frees a <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>requisition</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkSizeRequestMode"></a><h3>enum GtkSizeRequestMode</h3>
<pre class="programlisting">typedef enum {
  GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH = 0,
  GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT
} GtkSizeRequestMode;
</pre>
<p>
Specifies a preference for height-for-width or
width-for-height geometry management.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"></a><span class="term"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></span></p></td>
<td>Prefer height-for-width geometry management
</td>
</tr>
<tr>
<td><p><a name="GTK-SIZE-REQUEST-WIDTH-FOR-HEIGHT:CAPS"></a><span class="term"><code class="literal">GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT</code></span></p></td>
<td>Prefer width-for-height geometry management
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkRequestedSize"></a><h3>struct GtkRequestedSize</h3>
<pre class="programlisting">struct GtkRequestedSize {
  gpointer data;
  gint     minimum_size;
  gint     natural_size;
};
</pre>
<p>
Represents a request of a screen object in a given orientation. These
are primarily used in container implementations when allocating a natural
size for children calling. See <a class="link" href="gtk3-GtkWidget.html#gtk-distribute-natural-allocation" title="gtk_distribute_natural_allocation ()"><code class="function">gtk_distribute_natural_allocation()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GtkRequestedSize.data"></a>data</code></em>;</span></p></td>
<td>A client pointer</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GtkRequestedSize.minimum-size"></a>minimum_size</code></em>;</span></p></td>
<td>The minimum size needed for allocation in a given orientation</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GtkRequestedSize.natural-size"></a>natural_size</code></em>;</span></p></td>
<td>The natural size for allocation in a given orientation</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-height"></a><h3>gtk_widget_get_preferred_height ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_preferred_height     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_height</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_height</code></em>);</pre>
<p>
Retrieves a widget's initial minimum and natural height.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>This call is specific to width-for-height requests.</p>
</div>
<p>
</p>
<p>
The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a class="link" href="gtk3-GtkSizeGroup.html#GtkSizeGroup" title="struct GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>s that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>minimum_height</code></em> :</span></p></td>
<td>location to store the minimum height, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>natural_height</code></em> :</span></p></td>
<td>location to store the natural height, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-width"></a><h3>gtk_widget_get_preferred_width ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_preferred_width      (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_width</code></em>);</pre>
<p>
Retrieves a widget's initial minimum and natural width.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>This call is specific to height-for-width
requests.</p>
</div>
<p>
</p>
<p>
The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a class="link" href="gtk3-GtkSizeGroup.html#GtkSizeGroup" title="struct GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>s that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>minimum_width</code></em> :</span></p></td>
<td>location to store the minimum width, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>natural_width</code></em> :</span></p></td>
<td>location to store the natural width, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-height-for-width"></a><h3>gtk_widget_get_preferred_height_for_width ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_preferred_height_for_width
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_height</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_height</code></em>);</pre>
<p>
Retrieves a widget's minimum and natural height if it would be given
the specified <em class="parameter"><code>width</code></em>.
</p>
<p>
The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a class="link" href="gtk3-GtkSizeGroup.html#GtkSizeGroup" title="struct GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>s that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
<td>the width which is available for allocation</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>minimum_height</code></em> :</span></p></td>
<td>location for storing the minimum height, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>natural_height</code></em> :</span></p></td>
<td>location for storing the natural height, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-width-for-height"></a><h3>gtk_widget_get_preferred_width_for_height ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_preferred_width_for_height
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minimum_width</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *natural_width</code></em>);</pre>
<p>
Retrieves a widget's minimum and natural width if it would be given
the specified <em class="parameter"><code>height</code></em>.
</p>
<p>
The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a class="link" href="gtk3-GtkSizeGroup.html#GtkSizeGroup" title="struct GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>s that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
<td>the height which is available for allocation</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>minimum_width</code></em> :</span></p></td>
<td>location for storing the minimum width, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>natural_width</code></em> :</span></p></td>
<td>location for storing the natural width, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-request-mode"></a><h3>gtk_widget_get_request_mode ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="returnvalue">GtkSizeRequestMode</span></a>  gtk_widget_get_request_mode         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets whether the widget prefers a height-for-width layout
or a width-for-height layout.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p><a class="link" href="gtk3-GtkBin.html#GtkBin" title="struct GtkBin"><span class="type">GtkBin</span></a> widgets generally propagate the preference of
their child, container widgets need to request something either in
context of their children or in context of their allocation
capabilities.</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The <a class="link" href="gtk3-GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="type">GtkSizeRequestMode</span></a> preferred by <em class="parameter"><code>widget</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-size"></a><h3>gtk_widget_get_preferred_size ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_get_preferred_size       (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *minimum_size</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequisition" title="struct GtkRequisition"><span class="type">GtkRequisition</span></a> *natural_size</code></em>);</pre>
<p>
Retrieves the minimum and natural size of a widget, taking
into account the widget's preference for height-for-width management.
</p>
<p>
This is used to retrieve a suitable size by container widgets which do
not impose any restrictions on the child placement. It can be used
to deduce toplevel window and menu sizes as well as child widgets in
free-form containers such as GtkLayout.
</p>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>Handle with care. Note that the natural height of a height-for-width
widget will generally be a smaller size than the minimum height, since the required
height for the natural width is generally smaller than the required height for
the minimum width.</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>minimum_size</code></em> :</span></p></td>
<td>location for storing the minimum size, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>natural_size</code></em> :</span></p></td>
<td>location for storing the natural size, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-distribute-natural-allocation"></a><h3>gtk_distribute_natural_allocation ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gtk_distribute_natural_allocation   (<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> extra_space</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_requested_sizes</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkRequestedSize" title="struct GtkRequestedSize"><span class="type">GtkRequestedSize</span></a> *sizes</code></em>);</pre>
<p>
Distributes <em class="parameter"><code>extra_space</code></em> to child <em class="parameter"><code>sizes</code></em> by bringing smaller
children up to natural size first.
</p>
<p>
The remaining space will be added to the <em class="parameter"><code>minimum_size</code></em> member of the
GtkRequestedSize struct. If all sizes reach their natural size then
the remaining space is returned.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>extra_space</code></em> :</span></p></td>
<td>Extra space to redistribute among children after subtracting
minimum sizes and any child padding from the overall allocation</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_requested_sizes</code></em> :</span></p></td>
<td>Number of requests to fit into the allocation</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sizes</code></em> :</span></p></td>
<td>An array of structs with a client pointer and a minimum/natural size
in the orientation of the allocation.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The remainder of <em class="parameter"><code>extra_space</code></em> after redistributing space
to <em class="parameter"><code>sizes</code></em>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkAlign"></a><h3>enum GtkAlign</h3>
<pre class="programlisting">typedef enum {
  GTK_ALIGN_FILL,
  GTK_ALIGN_START,
  GTK_ALIGN_END,
  GTK_ALIGN_CENTER
} GtkAlign;
</pre>
<p>
Controls how a widget deals with extra space in a single (x or y)
dimension.
</p>
<p>
Alignment only matters if the widget receives a "too large" allocation,
for example if you packed the widget with the <span class="type">"expand"</span>
flag inside a <a class="link" href="gtk3-GtkBox.html#GtkBox" title="struct GtkBox"><span class="type">GtkBox</span></a>, then the widget might get extra space.  If
you have for example a 16x16 icon inside a 32x32 space, the icon
could be scaled and stretched, it could be centered, or it could be
positioned to one side of the space.
</p>
<p>
Note that in horizontal context <em class="parameter"><code>GTK_ALIGN_START</code></em> and <em class="parameter"><code>GTK_ALIGN_END</code></em>
are interpreted relative to text direction.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GTK-ALIGN-FILL:CAPS"></a><span class="term"><code class="literal">GTK_ALIGN_FILL</code></span></p></td>
<td>stretch to fill all space if possible, center if
    no meaningful way to stretch
</td>
</tr>
<tr>
<td><p><a name="GTK-ALIGN-START:CAPS"></a><span class="term"><code class="literal">GTK_ALIGN_START</code></span></p></td>
<td>snap to left or top side, leaving space on right
    or bottom
</td>
</tr>
<tr>
<td><p><a name="GTK-ALIGN-END:CAPS"></a><span class="term"><code class="literal">GTK_ALIGN_END</code></span></p></td>
<td>snap to right or bottom side, leaving space on left
    or top
</td>
</tr>
<tr>
<td><p><a name="GTK-ALIGN-CENTER:CAPS"></a><span class="term"><code class="literal">GTK_ALIGN_CENTER</code></span></p></td>
<td>center natural width of widget inside the
    allocation
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-halign"></a><h3>gtk_widget_get_halign ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>            gtk_widget_get_halign               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the value of the <span class="type">"halign"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the horizontal alignment of <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-halign"></a><h3>gtk_widget_set_halign ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_halign               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a> align</code></em>);</pre>
<p>
Sets the horizontal alignment of <em class="parameter"><code>widget</code></em>.
See the <span class="type">"halign"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
<td>the horizontal alignment</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-valign"></a><h3>gtk_widget_get_valign ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>            gtk_widget_get_valign               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the value of the <span class="type">"valign"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the vertical alignment of <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-valign"></a><h3>gtk_widget_set_valign ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_valign               (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a> align</code></em>);</pre>
<p>
Sets the vertical alignment of <em class="parameter"><code>widget</code></em>.
See the <span class="type">"valign"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
<td>the vertical alignment</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-left"></a><h3>gtk_widget_get_margin_left ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gtk_widget_get_margin_left          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the value of the <span class="type">"margin-left"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The left margin of <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-left"></a><h3>gtk_widget_set_margin_left ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_margin_left          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);</pre>
<p>
Sets the left margin of <em class="parameter"><code>widget</code></em>.
See the <span class="type">"margin-left"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>margin</code></em> :</span></p></td>
<td>the left margin</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-right"></a><h3>gtk_widget_get_margin_right ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gtk_widget_get_margin_right         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the value of the <span class="type">"margin-right"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The right margin of <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-right"></a><h3>gtk_widget_set_margin_right ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_margin_right         (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);</pre>
<p>
Sets the right margin of <em class="parameter"><code>widget</code></em>.
See the <span class="type">"margin-right"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>margin</code></em> :</span></p></td>
<td>the right margin</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-top"></a><h3>gtk_widget_get_margin_top ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gtk_widget_get_margin_top           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the value of the <span class="type">"margin-top"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The top margin of <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-top"></a><h3>gtk_widget_set_margin_top ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_margin_top           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);</pre>
<p>
Sets the top margin of <em class="parameter"><code>widget</code></em>.
See the <span class="type">"margin-top"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>margin</code></em> :</span></p></td>
<td>the top margin</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-bottom"></a><h3>gtk_widget_get_margin_bottom ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gtk_widget_get_margin_bottom        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets the value of the <span class="type">"margin-bottom"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The bottom margin of <em class="parameter"><code>widget</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-bottom"></a><h3>gtk_widget_set_margin_bottom ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_margin_bottom        (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> margin</code></em>);</pre>
<p>
Sets the bottom margin of <em class="parameter"><code>widget</code></em>.
See the <span class="type">"margin-bottom"</span> property.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>margin</code></em> :</span></p></td>
<td>the bottom margin</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 3.0</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-hexpand"></a><h3>gtk_widget_get_hexpand ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_hexpand              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets whether the widget would like any available extra horizontal
space. When a user resizes a <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>, widgets with expand=TRUE
generally receive the extra space. For example, a list or
scrollable area or document in your window would often be set to
expand.
</p>
<p>
Containers should use <a class="link" href="gtk3-GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()"><code class="function">gtk_widget_compute_expand()</code></a> rather than
this function, to see whether a widget, or any of its children,
has the expand flag set. If any child of a widget wants to
expand, the parent may ask to expand also.
</p>
<p>
This function only looks at the widget's own hexpand flag, rather
than computing whether the entire widget tree rooted at this widget
wants to expand.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>whether hexpand flag is set</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-hexpand"></a><h3>gtk_widget_set_hexpand ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_hexpand              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> expand</code></em>);</pre>
<p>
Sets whether the widget would like any available extra horizontal
space. When a user resizes a <a class="link" href="gtk3-GtkWindow.html#GtkWindow" title="GtkWindow"><span class="type">GtkWindow</span></a>, widgets with expand=TRUE
generally receive the extra space. For example, a list or
scrollable area or document in your window would often be set to
expand.
</p>
<p>
Call this function to set the expand flag if you would like your
widget to become larger horizontally when the window has extra
room.
</p>
<p>
By default, widgets automatically expand if any of their children
want to expand. (To see if a widget will automatically expand given
its current children and state, call <a class="link" href="gtk3-GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()"><code class="function">gtk_widget_compute_expand()</code></a>. A
container can decide how the expandability of children affects the
expansion of the container by overriding the compute_expand virtual
method on <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>.).
</p>
<p>
Setting hexpand explicitly with this function will override the
automatic expand behavior.
</p>
<p>
This function forces the widget to expand or not to expand,
regardless of children.  The override occurs because
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> sets the hexpand-set property (see
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand-set" title="gtk_widget_set_hexpand_set ()"><code class="function">gtk_widget_set_hexpand_set()</code></a>) which causes the widget's hexpand
value to be used, rather than looking at children and widget state.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>expand</code></em> :</span></p></td>
<td>whether to expand</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-hexpand-set"></a><h3>gtk_widget_get_hexpand_set ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_hexpand_set          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets whether <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> has been used to
explicitly set the expand flag on this widget.
</p>
<p>
If hexpand is set, then it overrides any computed
expand value based on child widgets. If hexpand is not
set, then the expand value depends on whether any
children of the widget would like to expand.
</p>
<p>
There are few reasons to use this function, but it's here
for completeness and consistency.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>whether hexpand has been explicitly set</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-hexpand-set"></a><h3>gtk_widget_set_hexpand_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_hexpand_set          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> set</code></em>);</pre>
<p>
Sets whether the hexpand flag (see <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()"><code class="function">gtk_widget_get_hexpand()</code></a>) will
be used.
</p>
<p>
The hexpand-set property will be set automatically when you call
<a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> to set hexpand, so the most likely
reason to use this function would be to unset an explicit expand
flag.
</p>
<p>
If hexpand is set, then it overrides any computed
expand value based on child widgets. If hexpand is not
set, then the expand value depends on whether any
children of the widget would like to expand.
</p>
<p>
There are few reasons to use this function, but it's here
for completeness and consistency.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
<td>value for hexpand-set property</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-vexpand"></a><h3>gtk_widget_get_vexpand ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_vexpand              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets whether the widget would like any available extra vertical
space.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()"><code class="function">gtk_widget_get_hexpand()</code></a> for more detail.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>whether vexpand flag is set</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-vexpand"></a><h3>gtk_widget_set_vexpand ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_vexpand              (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> expand</code></em>);</pre>
<p>
Sets whether the widget would like any available extra vertical
space.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> for more detail.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>expand</code></em> :</span></p></td>
<td>whether to expand</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-vexpand-set"></a><h3>gtk_widget_get_vexpand_set ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_get_vexpand_set          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Gets whether <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-vexpand" title="gtk_widget_set_vexpand ()"><code class="function">gtk_widget_set_vexpand()</code></a> has been used to
explicitly set the expand flag on this widget.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-hexpand-set" title="gtk_widget_get_hexpand_set ()"><code class="function">gtk_widget_get_hexpand_set()</code></a> for more detail.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>whether vexpand has been explicitly set</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-vexpand-set"></a><h3>gtk_widget_set_vexpand_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_set_vexpand_set          (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> set</code></em>);</pre>
<p>
Sets whether the vexpand flag (see <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-vexpand" title="gtk_widget_get_vexpand ()"><code class="function">gtk_widget_get_vexpand()</code></a>) will
be used.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-set-hexpand-set" title="gtk_widget_set_hexpand_set ()"><code class="function">gtk_widget_set_hexpand_set()</code></a> for more detail.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
<td>value for vexpand-set property</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-compute-expand"></a><h3>gtk_widget_queue_compute_expand ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_widget_queue_compute_expand     (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>
Mark <em class="parameter"><code>widget</code></em> as needing to recompute its expand flags. Call
this function when setting legacy expand child properties
on the child of a container.
</p>
<p>
See <a class="link" href="gtk3-GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()"><code class="function">gtk_widget_compute_expand()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>a <a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-compute-expand"></a><h3>gtk_widget_compute_expand ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_widget_compute_expand           (<em class="parameter"><code><a class="link" href="gtk3-GtkWidget.html#GtkWidget" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkOrientation" title="enum GtkOrientation"><span class="type">GtkOrientation</span></a> orientation</code></em>);</pre>
<p>
Computes whether a container should give this widget extra space
when possible. Containers should check this, rather than
looking at <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()"><code class="function">gtk_widget_get_hexpand()</code></a> or <a class="link" href="gtk3-GtkWidget.html#gtk-widget-get-vexpand" title="gtk_widget_get_vexpand ()"><code class="function">gtk_widget_get_vexpand()</code></a>.
</p>
<p>
This function already checks whether the widget is visible, so
visibility does not need to be checked separately. Non-visible
widgets are not expanded.
</p>
<p>
The computed expand value uses either the expand setting explicitly
set on the widget itself, or, if none has been explicitly set,
the widget may expand if some of its children do.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
<td>the widget</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>orientation</code></em> :</span></p></td>
<td>expand direction</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>whether widget tree rooted here should be expanded</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>